Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dagger for openSUSE:Factory checked in at 2022-07-22 19:21:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dagger (Old) and /work/SRC/openSUSE:Factory/.dagger.new.21925 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dagger" Fri Jul 22 19:21:28 2022 rev:19 rq:990663 version:0.2.25 Changes: -------- --- /work/SRC/openSUSE:Factory/dagger/dagger.changes 2022-07-21 11:33:58.974982619 +0200 +++ /work/SRC/openSUSE:Factory/.dagger.new.21925/dagger.changes 2022-07-22 19:21:47.344713117 +0200 @@ -1,0 +2,13 @@ +Thu Jul 21 13:21:22 UTC 2022 - ka...@b1-systems.de + +- Update to version 0.2.25: + * fix: Use included wget instead of curl + * Get telemetry pushing final states and action logs + * build(deps): bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#2816) + * feat: Add global auth env variables to `core.#Pull` + * ci: print cue lint feedback for unformatted files + * Mark runs failed when action cannot be found in plan + * fix: Validator not detecting an edge case with valid FS reference + * Keep go.opentelemetry.io/otel versions in sync with BuildKit + +------------------------------------------------------------------- Old: ---- dagger-0.2.24.tar.gz New: ---- dagger-0.2.25.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dagger.spec ++++++ --- /var/tmp/diff_new_pack.kYjt83/_old 2022-07-22 19:21:48.028714173 +0200 +++ /var/tmp/diff_new_pack.kYjt83/_new 2022-07-22 19:21:48.028714173 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: dagger -Version: 0.2.24 +Version: 0.2.25 Release: 0 Summary: A portable devkit for CI/CD pipelines License: GPL-3.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kYjt83/_old 2022-07-22 19:21:48.060714223 +0200 +++ /var/tmp/diff_new_pack.kYjt83/_new 2022-07-22 19:21:48.064714229 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/dagger/dagger</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.2.24</param> + <param name="revision">v0.2.25</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -16,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">dagger-0.2.24.tar.gz</param> + <param name="archive">dagger-0.2.25.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.kYjt83/_old 2022-07-22 19:21:48.080714254 +0200 +++ /var/tmp/diff_new_pack.kYjt83/_new 2022-07-22 19:21:48.084714260 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/dagger/dagger</param> - <param name="changesrevision">89446086b0d2f4c3e437e6964a4cfa249c29a764</param></service></servicedata> + <param name="changesrevision">59adcef42f8d085335dac015715a96872ea78c18</param></service></servicedata> (No newline at EOF) ++++++ dagger-0.2.24.tar.gz -> dagger-0.2.25.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/ci/cue/lint.cue new/dagger-0.2.25/ci/cue/lint.cue --- old/dagger-0.2.24/ci/cue/lint.cue 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/ci/cue/lint.cue 2022-07-21 01:10:19.000000000 +0200 @@ -50,6 +50,10 @@ git status find . -name '*.cue' -not -path '*/cue.mod/*' -print | time xargs -n 1 -P 8 cue fmt -s + + # Show modified files + git diff -- "*.cue" + modified="$(git status -s . | grep -e "^ M" | grep "\.cue" | cut -d ' ' -f3 || true)" test -z "$modified" || (echo -e "linting error in:\n${modified}" > /dev/stderr ; false) """# diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/cmd/dagger/cmd/do.go new/dagger-0.2.25/cmd/dagger/cmd/do.go --- old/dagger-0.2.24/cmd/dagger/cmd/do.go 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/cmd/dagger/cmd/do.go 2022-07-21 01:10:19.000000000 +0200 @@ -62,9 +62,6 @@ tty *logger.TTYOutput ) - defer tm.Flush() - ctx = tm.WithContext(ctx) - if !viper.GetBool("experimental") { for _, f := range experimentalFlags { if viper.IsSet(f) { @@ -108,8 +105,14 @@ rid := tm.RunID() tm = telemetry.New() tm.SetRunID(rid) + ctx = tm.WithContext(ctx) + if viper.GetBool("telemetry-log") { + tm.EnableLogToFile() + } } + defer tm.Flush() + if err != nil { lg.Error().Err(err).Msgf("failed to load plan") @@ -117,28 +120,9 @@ doHelpCmd(cmd, nil, nil, nil, targetPath, []string{err.Error()}) os.Exit(0) } else { - var instanceErr *compiler.ErrorInstance - rce := event.RunCompleted{ - State: event.RunCompletedStateFailed, - Err: &event.RunError{Message: err.Error()}, - Error: err.Error(), - } - - if errors.As(err, &instanceErr) { - planFiles := map[string]string{} - for _, f := range instanceErr.Instance.Files { - bfile, _ := format.Node(f) - planFiles[filepath.Base(f.Filename)] = string(bfile) - } - rce.Err.PlanFiles = planFiles - } - tm.Push(ctx, rce) + captureRunCompletedFailed(ctx, tm, err) } - // manually flush events since otherwise they could be skipped as - // the program is exiting. - tm.Flush() - doHelpCmd(cmd, nil, nil, nil, targetPath, []string{err.Error()}) os.Exit(1) } @@ -153,6 +137,8 @@ targetStr := strings.Join(selectorStrs, " ") err = fmt.Errorf("action not found: %s", targetStr) + + captureRunCompletedFailed(ctx, tm, err) // Find closest action action = daggerPlan.Action().FindClosest(targetPath) if action == nil { @@ -160,6 +146,7 @@ doHelpCmd(cmd, nil, nil, nil, targetPath, []string{err.Error()}) os.Exit(1) } + targetPath = action.Path doHelpCmd(cmd, daggerPlan, action, nil, action.Path, []string{err.Error()}) os.Exit(1) @@ -179,6 +166,7 @@ err = cmd.Flags().Parse(args) if err != nil { + captureRunCompletedFailed(ctx, tm, err) doHelpCmd(cmd, daggerPlan, action, actionFlags, targetPath, []string{err.Error()}) os.Exit(1) } @@ -195,6 +183,7 @@ if f := viper.GetString("log-format"); f == "tty" || f == "auto" && term.IsTerminal(int(os.Stdout.Fd())) { tty, err = logger.NewTTYOutput(os.Stderr) if err != nil { + captureRunCompletedFailed(ctx, tm, err) lg.Fatal().Err(err).Msg("failed to initialize TTY logger") } tty.Start() @@ -230,11 +219,7 @@ daggerPlan.Context().TempDirs.Clean() if err != nil { - tm.Push(ctx, event.RunCompleted{ - State: event.RunCompletedStateFailed, - Error: err.Error(), - Err: &event.RunError{Message: err.Error()}, - }) + captureRunCompletedFailed(ctx, tm, err) lg.Fatal().Err(err).Msg("failed to execute plan") } @@ -265,14 +250,15 @@ outputs[key] = fmt.Sprintf("%v", value) } + if err := plan.PrintOutputs(action.Outputs(), format, file); err != nil { + captureRunCompletedFailed(ctx, tm, err) + lg.Fatal().Err(err).Msg("failed to print action outputs") + } + tm.Push(ctx, event.RunCompleted{ State: event.RunCompletedStateSuccess, Outputs: outputs, }) - - if err := plan.PrintOutputs(action.Outputs(), format, file); err != nil { - lg.Fatal().Err(err).Msg("failed to print action outputs") - } }, } @@ -408,6 +394,29 @@ return nil } +func captureRunCompletedFailed(ctx context.Context, tm *telemetry.Telemetry, err error) { + var instanceErr *compiler.ErrorInstance + rce := event.RunCompleted{ + State: event.RunCompletedStateFailed, + Err: &event.RunError{Message: err.Error()}, + Error: err.Error(), + } + + if errors.As(err, &instanceErr) { + planFiles := map[string]string{} + for _, f := range instanceErr.Instance.Files { + bfile, _ := format.Node(f) + planFiles[filepath.Base(f.Filename)] = string(bfile) + } + rce.Err.PlanFiles = planFiles + } + tm.Push(ctx, rce) + + // manually flush events since otherwise they could be skipped as + // the program is exiting. + tm.Flush() +} + func init() { doCmd.Flags().StringArrayP("with", "w", []string{}, "") doCmd.Flags().StringP("plan", "p", ".", "Path to plan (defaults to current directory)") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/docs/getting-started/1201-ci-environment.md new/dagger-0.2.25/docs/getting-started/1201-ci-environment.md --- old/dagger-0.2.24/docs/getting-started/1201-ci-environment.md 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/docs/getting-started/1201-ci-environment.md 2022-07-21 01:10:19.000000000 +0200 @@ -106,7 +106,7 @@ .dagger: extends: [.docker] variables: - DAGGER_VERSION: 0.2.19 + DAGGER_VERSION: 0.2.24 DAGGER_LOG_FORMAT: plain DAGGER_CACHE_PATH: .dagger-cache @@ -116,11 +116,10 @@ paths: - ${DAGGER_CACHE_PATH} before_script: - - apk add --no-cache curl - | # install dagger cd /usr/local - curl -L https://dl.dagger.io/dagger/install.sh | sh + wget -O - https://dl.dagger.io/dagger/install.sh | sh cd - dagger version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/docs/guides/concepts/1244-docker.md new/dagger-0.2.25/docs/guides/concepts/1244-docker.md --- old/dagger-0.2.24/docs/guides/concepts/1244-docker.md 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/docs/guides/concepts/1244-docker.md 2022-07-21 01:10:19.000000000 +0200 @@ -68,6 +68,8 @@ ```cue file=../../tests/guides/docker/pull.cue ``` +When pulling images from the official Docker Hub registry (`docker.io`), you can set the `DOCKERHUB_AUTH_USER` and `DOCKERHUB_AUTH_SECRET` environment variables to authenticate. This will help fix docker hub rate limit issues when pulling images unauthenticated. + ### `docker.#Set` The image metadata (i.e., [image config](https://github.com/dagger/dagger/blob/main/pkg/dagger.io/dagger/core/image.cue)) can be changed with the `docker.#Set` action. It takes an `#Image` as input, configurations to change, and outputs a new image with the changed metadata. The files in the image (`dagger.#FS`) are untouched. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/go.mod new/dagger-0.2.25/go.mod --- old/dagger-0.2.24/go.mod 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/go.mod 2022-07-21 01:10:19.000000000 +0200 @@ -25,7 +25,7 @@ github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 github.com/rs/zerolog v1.27.0 github.com/sergi/go-diff v1.2.0 - github.com/sirupsen/logrus v1.8.1 + github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.5.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.12.0 @@ -33,10 +33,21 @@ github.com/tonistiigi/fsutil v0.0.0-20220315205639-9ed612626da3 github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f - go.opentelemetry.io/otel v1.8.0 + //!!!! the version of go.opentelemetry.io/otel MUST be kept in sync with BuildKit's version !!!! + // https://github.com/moby/buildkit/blob/v0.10.3/go.mod#L62-L68 + // + // Otherwise we can introduce data races and other weird behaviour: + // - (jaeger v1.6.0) data races https://github.com/dagger/dagger/runs/7359366602?check_suite_focus=true#step:8:1433 + // - (jaeger v1.8.0) conflicting Schema URLs https://github.com/dagger/dagger/runs/7358945187?check_suite_focus=true#step:8:2066 + // + // These PRs have more context: + // - TBD + // - https://github.com/dagger/dagger/pull/2446#issuecomment-1126377411 + go.opentelemetry.io/otel v1.4.1 go.opentelemetry.io/otel/exporters/jaeger v1.4.1 go.opentelemetry.io/otel/sdk v1.4.1 - go.opentelemetry.io/otel/trace v1.8.0 + go.opentelemetry.io/otel/trace v1.4.1 + //!!!! the version of go.opentelemetry.io/otel MUST be kept in sync with BuildKit's version !!!! golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 @@ -119,7 +130,7 @@ go.opentelemetry.io/proto/otlp v0.12.0 // indirect golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect - golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/tools v0.1.10 // indirect golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/go.sum new/dagger-0.2.25/go.sum --- old/dagger-0.2.24/go.sum 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/go.sum 2022-07-21 01:10:19.000000000 +0200 @@ -1287,8 +1287,9 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= @@ -1485,9 +1486,8 @@ go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= go.opentelemetry.io/otel v1.4.0/go.mod h1:jeAqMFKy2uLIxCtKxoFj0FAL5zAPKQagc3+GtBWakzk= +go.opentelemetry.io/otel v1.4.1 h1:QbINgGDDcoQUoMJa2mMaWno49lja9sHwp6aoa2n3a4g= go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= -go.opentelemetry.io/otel v1.8.0 h1:zcvBFizPbpa1q7FehvFiHbQwGzmPILebO0tyqIR5Djg= -go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= go.opentelemetry.io/otel/exporters/jaeger v1.4.1 h1:VHCK+2yTZDqDaVXj7JH2Z/khptuydo6C0ttBh2bxAbc= go.opentelemetry.io/otel/exporters/jaeger v1.4.1/go.mod h1:ZW7vkOu9nC1CxsD8bHNHCia5JUbwP39vxgd1q4Z5rCI= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= @@ -1516,9 +1516,8 @@ go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE= +go.opentelemetry.io/otel/trace v1.4.1 h1:O+16qcdTrT7zxv2J6GejTPFinSwA++cYerC5iSiF8EQ= go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= -go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOlHrfY= -go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.opentelemetry.io/proto/otlp v0.12.0 h1:CMJ/3Wp7iOWES+CYLfnBv+DVmPbB+kmy9PJ92XvlR6c= @@ -1839,8 +1838,8 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/pkg/dagger.io/dagger/core/image.cue new/dagger-0.2.25/pkg/dagger.io/dagger/core/image.cue --- old/dagger-0.2.24/pkg/dagger.io/dagger/core/image.cue 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/pkg/dagger.io/dagger/core/image.cue 2022-07-21 01:10:19.000000000 +0200 @@ -71,6 +71,8 @@ source: #Ref // Authentication + // You can alternatively set DOCKERHUB_AUTH_USER and DOCKERHUB_AUTH_PASSWORD env vars on your host + // However, these global env vars only work for the "docker.io" registry auth?: { username: string secret: dagger.#Secret diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/pkg/universe.dagger.io/docker/run.cue new/dagger-0.2.25/pkg/universe.dagger.io/docker/run.cue --- old/dagger-0.2.24/pkg/universe.dagger.io/docker/run.cue 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/pkg/universe.dagger.io/docker/run.cue 2022-07-21 01:10:19.000000000 +0200 @@ -118,7 +118,7 @@ } export: { - rootfs: dagger.#FS & _exec.output + rootfs: _exec.output files: [path=string]: string _files: { for path, _ in files { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/plan/task/pull.go new/dagger-0.2.25/plan/task/pull.go --- old/dagger-0.2.24/plan/task/pull.go 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/plan/task/pull.go 2022-07-21 01:10:19.000000000 +0200 @@ -3,6 +3,8 @@ import ( "context" "fmt" + "os" + "strings" "github.com/docker/distribution/reference" "github.com/moby/buildkit/client/llb" @@ -27,19 +29,42 @@ return nil, err } + // Extract registry target from source + target, err := solver.ParseAuthHost(rawRef) + if err != nil { + return nil, err + } + // Read auth info if auth := v.Lookup("auth"); auth.Exists() { a, err := decodeAuthValue(pctx, auth) if err != nil { return nil, err } - // Extract registry target from source - target, err := solver.ParseAuthHost(rawRef) - if err != nil { - return nil, err - } + s.AddCredentials(target, a.Username, a.Secret.PlainText()) lg.Debug().Str("target", target).Msg("add target credentials") + } else if target == "docker.io" { + // Collect DOCKERHUB_AUTH_USER && DOCKERHUB_AUTH_PASSWORD env vars + username, secret := "", "" + for _, envVar := range os.Environ() { + split := strings.SplitN(envVar, "=", 2) + if len(split) != 2 { + continue + } + key, val := split[0], split[1] + if strings.EqualFold(key, "dockerhub_auth_user") { + username = val + } + if strings.EqualFold(key, "dockerhub_auth_password") { + secret = val + } + } + + if username != "" && secret != "" { + s.AddCredentials(target, username, secret) + lg.Debug().Str("target", target).Msg("add global credentials from DOCKERHUB_AUTH_USER and DOCKERHUB_AUTH_PASSWORD env vars") + } } ref, err := reference.ParseNormalizedNamed(rawRef) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/tests/tasks/pull/pull_auth_env.cue new/dagger-0.2.25/tests/tasks/pull/pull_auth_env.cue --- old/dagger-0.2.24/tests/tasks/pull/pull_auth_env.cue 1970-01-01 01:00:00.000000000 +0100 +++ new/dagger-0.2.25/tests/tasks/pull/pull_auth_env.cue 2022-07-21 01:10:19.000000000 +0200 @@ -0,0 +1,12 @@ +package main + +import ( + "dagger.io/dagger" + "dagger.io/dagger/core" +) + +dagger.#Plan & { + actions: pull: core.#Pull & { + source: "unknownimage" + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dagger-0.2.24/tests/tasks.bats new/dagger-0.2.25/tests/tasks.bats --- old/dagger-0.2.24/tests/tasks.bats 2022-07-19 18:31:28.000000000 +0200 +++ new/dagger-0.2.25/tests/tasks.bats 2022-07-21 01:10:19.000000000 +0200 @@ -13,6 +13,13 @@ "$DAGGER" "do" -p ./tasks/pull/pull_auth.cue pull } +@test "task: #Pull auth env" { + export DOCKERHUB_AUTH_USER=foo DOCKERHUB_AUTH_PASSWORD=bar + run "$DAGGER" "do" -p ./tasks/pull/pull_auth_env.cue pull + assert_failure + assert_line --partial 'failed to fetch oauth token: unexpected status: 401 Unauthorized' +} + @test "task: #Push" { "$DAGGER" "do" -p ./tasks/push/push.cue pullOutputFile } ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/dagger/vendor.tar.gz /work/SRC/openSUSE:Factory/.dagger.new.21925/vendor.tar.gz differ: char 5, line 1