MCPcopy Create free account
hub / github.com/dagger/dagger / buildTargets

Method buildTargets

toolchains/engine-dev/main.go:490–522  ·  view source on GitHub ↗
(ctx context.Context, tags []string)

Source from the content-addressed store, hash-verified

488}
489
490func (dev *EngineDev) buildTargets(ctx context.Context, tags []string) ([]targetResult, error) {
491 releaseVersion := releaseVersionFromTags(tags)
492 targetResults := make([]targetResult, len(targets))
493 jobs := parallel.New()
494 for i, target := range targets {
495 // determine the target tags
496 for _, tag := range tags {
497 targetResults[i].Tags = append(targetResults[i].Tags, fmt.Sprintf(target.Tag, tag))
498 }
499 // build all the target platforms
500 targetResults[i].Platforms = make([]*dagger.Container, len(target.Platforms))
501 for j, platform := range target.Platforms {
502 jobs = jobs.WithJob(fmt.Sprintf("build %s for %s", target.Name, platform),
503 func(ctx context.Context) error {
504 ctr, err := dev.Container(ctx, platform, target.GPUSupport, releaseVersion, releaseVersion)
505 if err != nil {
506 return err
507 }
508 ctr, err = ctr.Sync(ctx)
509 if err != nil {
510 return err
511 }
512 targetResults[i].Platforms[j] = ctr
513 return nil
514 },
515 )
516 }
517 }
518 if err := jobs.Run(ctx); err != nil {
519 return nil, err
520 }
521 return targetResults, nil
522}
523
524func releaseVersionFromTags(tags []string) string {
525 for _, tag := range tags {

Callers 2

ReleaseDryRunMethod · 0.95
PublishMethod · 0.95

Calls 6

ContainerMethod · 0.95
NewFunction · 0.92
releaseVersionFromTagsFunction · 0.85
SyncMethod · 0.65
RunMethod · 0.65
WithJobMethod · 0.45

Tested by

no test coverage detected