Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package docker for openSUSE:Factory checked in at 2025-06-24 20:46:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/docker (Old) and /work/SRC/openSUSE:Factory/.docker.new.7067 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker" Tue Jun 24 20:46:07 2025 rev:165 rq:1287937 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/docker/docker.changes 2025-06-10 08:58:38.274919400 +0200 +++ /work/SRC/openSUSE:Factory/.docker.new.7067/docker.changes 2025-06-24 20:46:42.558236003 +0200 @@ -1,0 +2,25 @@ +Mon Jun 23 12:46:53 UTC 2025 - Aleksa Sarai <asa...@suse.com> + +[ This update is a no-op, only needed to work around unfortunate automated + packaging script behaviour on SLES. ] + +- The following patches were removed in openSUSE in the Docker 28.1.1-ce + update, but the patch names were later renamed in a SLES-only update before + Docker 28.1.1-ce was submitted to SLES. + + This causes the SLES build scripts to refuse the update because the patches + are not referenced in the changelog. There is no obvious place to put the + patch removals (the 28.1.1-ce update removing the patches chronologically + predates their renaming in SLES), so they are included here a dummy changelog + entry to work around the issue. + + - 0007-CVE-2025-22868-vendor-jws-split-token-into-fixed-num.patch + - 0008-CVE-2025-22869-vendor-ssh-limit-the-size-of-the-inte.patch + +------------------------------------------------------------------- +Wed Jun 18 06:22:56 UTC 2025 - Aleksa Sarai <asa...@suse.com> + +- Update to docker-buildx v0.25.0. Upstream changelog: + <https://github.com/docker/buildx/releases/tag/v0.25.0> + +------------------------------------------------------------------- Old: ---- docker-buildx-0.24.0.tar.xz New: ---- docker-buildx-0.25.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ docker.spec ++++++ --- /var/tmp/diff_new_pack.bkwKBs/_old 2025-06-24 20:46:43.486274476 +0200 +++ /var/tmp/diff_new_pack.bkwKBs/_new 2025-06-24 20:46:43.490274642 +0200 @@ -60,7 +60,7 @@ %if %{with buildx} # MANUAL: This needs to be updated with every docker-buildx update. -%define buildx_version 0.24.0 +%define buildx_version 0.25.0 %endif # Used when generating the "build" information for Docker version. The value of ++++++ 0003-SECRETS-SUSE-implement-SUSE-container-secrets.patch ++++++ --- /var/tmp/diff_new_pack.bkwKBs/_old 2025-06-24 20:46:43.518275803 +0200 +++ /var/tmp/diff_new_pack.bkwKBs/_new 2025-06-24 20:46:43.518275803 +0200 @@ -1,4 +1,4 @@ -From 283afd39d38521d8943a60919b00117e8c0c9e1e Mon Sep 17 00:00:00 2001 +From 787e602882fb4e4ad1efd88b3e902efbccbe69bd Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Wed, 8 Mar 2017 11:43:29 +1100 Subject: [PATCH 3/6] SECRETS: SUSE: implement SUSE container secrets @@ -18,8 +18,8 @@ Signed-off-by: Aleksa Sarai <asa...@suse.de> --- daemon/start.go | 5 + - daemon/suse_secrets.go | 437 +++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 442 insertions(+) + daemon/suse_secrets.go | 438 +++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 443 insertions(+) diff --git a/daemon/start.go b/daemon/start.go index eedb5ddc8a00..db878c8d5ad1 100644 @@ -38,7 +38,7 @@ if err != nil { return err diff --git a/daemon/suse_secrets.go b/daemon/suse_secrets.go -index b8f3d9f9c094..96bbe1b8ec81 100644 +index b8f3d9f9c094..5ab96651080b 100644 --- a/daemon/suse_secrets.go +++ b/daemon/suse_secrets.go @@ -18,15 +18,378 @@ @@ -420,13 +420,14 @@ // clearSuseSecrets removes any SecretReferences which were added by us // explicitly (this is detected by checking that the prefix has a 'suse_' // prefix, which is a prefix that cannot exist for normal swarm secrets). See -@@ -42,3 +405,77 @@ func (daemon *Daemon) clearSuseSecrets(c *container.Container) { +@@ -42,3 +405,78 @@ func (daemon *Daemon) clearSuseSecrets(c *container.Container) { } c.SecretReferences = without } + +func (daemon *Daemon) isRootless() bool { -+ return os.Geteuid() != 0 || Rootless(daemon.Config()) || rootless.RunningWithRootlessKit() ++ cfg := daemon.Config() ++ return os.Geteuid() != 0 || Rootless(&cfg) || rootless.RunningWithRootlessKit() +} + +func (daemon *Daemon) injectSuseSecretStore(c *container.Container) error { @@ -499,6 +500,6 @@ + return nil +} -- -2.49.0 +2.50.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bkwKBs/_old 2025-06-24 20:46:43.578278291 +0200 +++ /var/tmp/diff_new_pack.bkwKBs/_new 2025-06-24 20:46:43.582278456 +0200 @@ -19,8 +19,8 @@ <param name="url">https://github.com/docker/buildx.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="versionformat">0.24.0</param> - <param name="revision">v0.24.0</param> + <param name="versionformat">0.25.0</param> + <param name="revision">v0.25.0</param> <param name="filename">docker-buildx</param> </service> <service name="recompress" mode="manual"> ++++++ docker-28.2.2_ce_45873be4a.tar.xz ++++++ /work/SRC/openSUSE:Factory/docker/docker-28.2.2_ce_45873be4a.tar.xz /work/SRC/openSUSE:Factory/.docker.new.7067/docker-28.2.2_ce_45873be4a.tar.xz differ: char 15, line 1 ++++++ docker-buildx-0.24.0.tar.xz -> docker-buildx-0.25.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/docker/docker-buildx-0.24.0.tar.xz /work/SRC/openSUSE:Factory/.docker.new.7067/docker-buildx-0.25.0.tar.xz differ: char 15, line 1 ++++++ docker-cli-28.2.2_ce.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.gitattributes new/docker-cli-28.2.2_ce/.gitattributes --- old/docker-cli-28.2.2_ce/.gitattributes 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.gitattributes 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,14 @@ +* text=auto + +Dockerfile* linguist-language=Dockerfile +vendor.mod linguist-language=Go-Module +vendor.sum linguist-language=Go-Checksums + +*.go -text diff=golang + +# scripts directory contains shell scripts +# without extensions, so we need to force +scripts/** text=auto eol=lf + +# shell scripts should always have LF +*.sh text eol=lf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/CODEOWNERS new/docker-cli-28.2.2_ce/.github/CODEOWNERS --- old/docker-cli-28.2.2_ce/.github/CODEOWNERS 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/CODEOWNERS 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,6 @@ +# GitHub code owners +# See https://github.com/blog/2392-introducing-code-owners + +cli/command/stack/** @silvin-lubecki @docker/runtime-owners +contrib/completion/bash/** @albers @docker/runtime-owners +docs/** @thaJeztah @docker/runtime-owners diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/bug_report.yml new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/bug_report.yml --- old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/bug_report.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/bug_report.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,146 @@ +name: Bug report +description: Create a report to help us improve! +labels: + - kind/bug + - status/0-triage +body: + - type: markdown + attributes: + value: | + Thank you for taking the time to report a bug! + If this is a security issue report it to the [Docker Security team](mailto:secur...@docker.com). + - type: textarea + id: description + attributes: + label: Description + description: Give a clear and concise description of the bug + validations: + required: true + - type: textarea + id: repro + attributes: + label: Reproduce + description: Steps to reproduce the bug + placeholder: | + 1. docker run ... + 2. docker kill ... + 3. docker rm ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What is the expected behavior? + placeholder: | + E.g. "`docker rm` should remove the container and cleanup all associated data" + - type: textarea + id: version + attributes: + label: docker version + description: Output of `docker version` + render: bash + placeholder: | + Client: + Version: 20.10.17 + API version: 1.41 + Go version: go1.17.11 + Git commit: 100c70180fde3601def79a59cc3e996aa553c9b9 + Built: Mon Jun 6 21:36:39 UTC 2022 + OS/Arch: linux/amd64 + Context: default + Experimental: true + + Server: + Engine: + Version: 20.10.17 + API version: 1.41 (minimum version 1.12) + Go version: go1.17.11 + Git commit: a89b84221c8560e7a3dee2a653353429e7628424 + Built: Mon Jun 6 22:32:38 2022 + OS/Arch: linux/amd64 + Experimental: true + containerd: + Version: 1.6.6 + GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc: + Version: 1.1.2 + GitCommit: a916309fff0f838eb94e928713dbc3c0d0ac7aa4 + docker-init: + Version: 0.19.0 + GitCommit: + validations: + required: true + - type: textarea + id: info + attributes: + label: docker info + description: Output of `docker info` + render: bash + placeholder: | + Client: + Context: default + Debug Mode: false + Plugins: + buildx: Docker Buildx (Docker Inc., 0.8.2) + compose: Docker Compose (Docker Inc., 2.6.0) + + Server: + Containers: 4 + Running: 2 + Paused: 0 + Stopped: 2 + Images: 80 + Server Version: 20.10.17 + Storage Driver: overlay2 + Backing Filesystem: xfs + Supports d_type: true + Native Overlay Diff: false + userxattr: false + Logging Driver: local + Cgroup Driver: cgroupfs + Cgroup Version: 1 + Plugins: + Volume: local + Network: bridge host ipvlan macvlan null overlay + Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog + Swarm: inactive + Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux + Default Runtime: runc + Init Binary: docker-init + containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1 + runc version: a916309fff0f838eb94e928713dbc3c0d0ac7aa4 + init version: + Security Options: + apparmor + seccomp + Profile: default + Kernel Version: 5.13.0-1031-azure + Operating System: Ubuntu 20.04.4 LTS + OSType: linux + Architecture: x86_64 + CPUs: 4 + Total Memory: 15.63GiB + Name: dev + ID: UC44:2RFL:7NQ5:GGFW:34O5:DYRE:CLOH:VLGZ:64AZ:GFXC:PY6H:SAHY + Docker Root Dir: /var/lib/docker + Debug Mode: true + File Descriptors: 46 + Goroutines: 134 + System Time: 2022-07-06T18:07:54.812439392Z + EventsListeners: 0 + Registry: https://index.docker.io/v1/ + Labels: + Experimental: true + Insecure Registries: + 127.0.0.0/8 + Live Restore Enabled: true + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional Info + description: Additional info you want to provide such as logs, system info, environment, etc. + validations: + required: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/config.yml new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/config.yml --- old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/config.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: "Contributing to Docker" + about: "Read guidelines and tips about contributing to Docker." + url: "https://github.com/docker/cli/blob/master/CONTRIBUTING.md" + - name: "Security and Vulnerabilities" + about: "Report any security issues or vulnerabilities responsibly to the Docker security team. Do not use the public issue tracker." + url: "https://github.com/moby/moby/security/policy" + - name: "General Support" + about: "Get the help you need to build, share, and run your Docker applications" + url: "https://www.docker.com/support/" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/feature_request.yml new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/feature_request.yml --- old/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/feature_request.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/ISSUE_TEMPLATE/feature_request.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,13 @@ +name: Feature request +description: Missing functionality? Come tell us about it! +labels: + - kind/feature + - status/0-triage +body: + - type: textarea + id: description + attributes: + label: Description + description: What is the feature you want to see? + validations: + required: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/PULL_REQUEST_TEMPLATE.md new/docker-cli-28.2.2_ce/.github/PULL_REQUEST_TEMPLATE.md --- old/docker-cli-28.2.2_ce/.github/PULL_REQUEST_TEMPLATE.md 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/PULL_REQUEST_TEMPLATE.md 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,37 @@ +<!-- +Make sure you've read and understood our contributing guidelines; +https://github.com/docker/cli/blob/master/CONTRIBUTING.md + +** Make sure all your commits include a signature generated with `git commit -s` ** + +For additional information on our contributing process, read our contributing +guide https://docs.docker.com/opensource/code/ + +If this is a bug fix, make sure your description includes "fixes #xxxx", or +"closes #xxxx" + +Provide the following information: +--> + +**- What I did** + +**- How I did it** + +**- How to verify it** + +**- Human readable description for the release notes** +<!-- +Write a short (one line) summary that describes the changes in this +pull request for inclusion in the changelog. +It must be placed inside the below triple backticks section. + +NOTE: Only fill this section if changes introduced in this PR are user-facing. +The PR must have a relevant impact/ label. +--> +```markdown changelog + + +``` + +**- A picture of a cute animal (not mandatory but encouraged)** + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/dependabot.yml new/docker-cli-28.2.2_ce/.github/dependabot.yml --- old/docker-cli-28.2.2_ce/.github/dependabot.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/dependabot.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,9 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + labels: + - "area/testing" + - "status/2-code-review" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/build.yml new/docker-cli-28.2.2_ce/.github/workflows/build.yml --- old/docker-cli-28.2.2_ce/.github/workflows/build.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/build.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,174 @@ +name: build + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + VERSION: ${{ github.ref }} + +on: + workflow_dispatch: + push: + branches: + - 'master' + - '[0-9]+.[0-9]+' + - '[0-9]+.x' + tags: + - 'v*' + pull_request: + +jobs: + prepare: + runs-on: ubuntu-24.04 + outputs: + matrix: ${{ steps.platforms.outputs.matrix }} + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Create matrix + id: platforms + run: | + echo "matrix=$(docker buildx bake cross --print | jq -cr '.target."cross".platforms')" >>${GITHUB_OUTPUT} + - + name: Show matrix + run: | + echo ${{ steps.platforms.outputs.matrix }} + + build: + runs-on: ubuntu-24.04 + needs: + - prepare + strategy: + fail-fast: false + matrix: + target: + - binary + - dynbinary + platform: ${{ fromJson(needs.prepare.outputs.matrix) }} + use_glibc: + - "" + - glibc + steps: + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Build + uses: docker/bake-action@v6 + with: + targets: ${{ matrix.target }} + set: | + *.platform=${{ matrix.platform }} + env: + USE_GLIBC: ${{ matrix.use_glibc }} + - + name: Create tarball + working-directory: ./build + run: | + mkdir /tmp/out + platform=${{ matrix.platform }} + platformPair=${platform//\//-} + tar -cvzf "/tmp/out/docker-${platformPair}.tar.gz" . + if [ -z "${{ matrix.use_glibc }}" ]; then + echo "ARTIFACT_NAME=${{ matrix.target }}-${platformPair}" >> $GITHUB_ENV + else + echo "ARTIFACT_NAME=${{ matrix.target }}-${platformPair}-glibc" >> $GITHUB_ENV + fi + - + name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.ARTIFACT_NAME }} + path: /tmp/out/* + if-no-files-found: error + + bin-image: + runs-on: ubuntu-24.04 + if: ${{ github.event_name != 'pull_request' && github.repository == 'docker/cli' }} + steps: + - + name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_CLIBIN_USERNAME }} + password: ${{ secrets.DOCKERHUB_CLIBIN_TOKEN }} + - + name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: dockereng/cli-bin + tags: | + type=semver,pattern={{version}} + type=ref,event=branch + type=ref,event=pr + type=sha + - + name: Build and push image + uses: docker/bake-action@v6 + with: + files: | + ./docker-bake.hcl + cwd://${{ steps.meta.outputs.bake-file }} + targets: bin-image-cross + push: ${{ github.event_name != 'pull_request' }} + set: | + *.cache-from=type=gha,scope=bin-image + *.cache-to=type=gha,scope=bin-image,mode=max + + prepare-plugins: + runs-on: ubuntu-24.04 + outputs: + matrix: ${{ steps.platforms.outputs.matrix }} + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Create matrix + id: platforms + run: | + echo "matrix=$(docker buildx bake plugins-cross --print | jq -cr '.target."plugins-cross".platforms')" >>${GITHUB_OUTPUT} + - + name: Show matrix + run: | + echo ${{ steps.platforms.outputs.matrix }} + + plugins: + runs-on: ubuntu-24.04 + needs: + - prepare-plugins + strategy: + fail-fast: false + matrix: + platform: ${{ fromJson(needs.prepare-plugins.outputs.matrix) }} + steps: + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Build + uses: docker/bake-action@v6 + with: + targets: plugins-cross + set: | + *.platform=${{ matrix.platform }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/codeql.yml new/docker-cli-28.2.2_ce/.github/workflows/codeql.yml --- old/docker-cli-28.2.2_ce/.github/workflows/codeql.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/codeql.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,79 @@ +name: codeql + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +on: + push: + branches: + - 'master' + - '[0-9]+.[0-9]+' + - '[0-9]+.x' + tags: + - 'v*' + pull_request: + # The branches below must be a subset of the branches above + branches: ["master"] + schedule: + # ┌───────────── minute (0 - 59) + # │ ┌───────────── hour (0 - 23) + # │ │ ┌───────────── day of the month (1 - 31) + # │ │ │ ┌───────────── month (1 - 12) + # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday) + # │ │ │ │ │ + # │ │ │ │ │ + # │ │ │ │ │ + # * * * * * + - cron: '0 9 * * 4' + +jobs: + codeql: + runs-on: ubuntu-24.04 + timeout-minutes: 10 + env: + DISABLE_WARN_OUTSIDE_CONTAINER: '1' + permissions: + actions: read + contents: read + security-events: write + + steps: + - + name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 2 + # CodeQL 2.16.4's auto-build added support for multi-module repositories, + # and is trying to be smart by searching for modules in every directory, + # including vendor directories. If no module is found, it's creating one + # which is ... not what we want, so let's give it a "go.mod". + # see: https://github.com/docker/cli/pull/4944#issuecomment-2002034698 + - + name: Create go.mod + run: | + ln -s vendor.mod go.mod + ln -s vendor.sum go.sum + - + name: Update Go + uses: actions/setup-go@v5 + with: + go-version: "1.24.3" + - + name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: go + - + name: Autobuild + uses: github/codeql-action/autobuild@v3 + - + name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:go" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/e2e.yml new/docker-cli-28.2.2_ce/.github/workflows/e2e.yml --- old/docker-cli-28.2.2_ce/.github/workflows/e2e.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/e2e.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,80 @@ +name: e2e + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - 'master' + - '[0-9]+.[0-9]+' + - '[0-9]+.x' + tags: + - 'v*' + pull_request: + +jobs: + tests: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + target: + - local + - connhelper-ssh + base: + - alpine + - debian + engine-version: + - 28 # latest + - 27 # latest - 1 + - 26 # github actions default + - 23 # mirantis lts + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Update daemon.json + run: | + if [ ! -f /etc/docker/daemon.json ]; then + # ubuntu 24.04 runners no longer have a default daemon.json present + sudo mkdir -p /etc/docker/ + echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json + else + # but if there is one; let's patch it to keep other options that may be set. + sudo jq '.experimental = true' < /etc/docker/daemon.json > /tmp/docker.json + sudo mv /tmp/docker.json /etc/docker/daemon.json + fi + sudo cat /etc/docker/daemon.json + sudo service docker restart + docker version + docker info + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Run ${{ matrix.target }} + run: | + make -f docker.Makefile test-e2e-${{ matrix.target }} + env: + BASE_VARIANT: ${{ matrix.base }} + ENGINE_VERSION: ${{ matrix.engine-version }} + TESTFLAGS: -coverprofile=/tmp/coverage/coverage.txt + - + name: Send to Codecov + uses: codecov/codecov-action@v5 + with: + files: ./build/coverage/coverage.txt + token: ${{ secrets.CODECOV_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/test.yml new/docker-cli-28.2.2_ce/.github/workflows/test.yml --- old/docker-cli-28.2.2_ce/.github/workflows/test.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/test.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,83 @@ +name: test + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - 'master' + - '[0-9]+.[0-9]+' + - '[0-9]+.x' + tags: + - 'v*' + pull_request: + +jobs: + ctn: + runs-on: ubuntu-24.04 + steps: + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Test + uses: docker/bake-action@v6 + with: + targets: test-coverage + - + name: Send to Codecov + uses: codecov/codecov-action@v5 + with: + files: ./build/coverage/coverage.txt + token: ${{ secrets.CODECOV_TOKEN }} + + host: + runs-on: ${{ matrix.os }} + env: + GOPATH: ${{ github.workspace }} + GOBIN: ${{ github.workspace }}/bin + GO111MODULE: auto + strategy: + fail-fast: false + matrix: + os: + - macos-13 # macOS 13 on Intel + - macos-14 # macOS 14 on arm64 (Apple Silicon M1) +# - windows-2022 # FIXME: some tests are failing on the Windows runner, as well as on Appveyor since June 24, 2018: https://ci.appveyor.com/project/docker/cli/history + steps: + - + name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ env.GOPATH }}/src/github.com/docker/cli + - + name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.24.3" + - + name: Test + run: | + go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '/vendor/|/e2e/') + go tool cover -func=/tmp/coverage.txt + working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli + shell: bash + - + name: Send to Codecov + uses: codecov/codecov-action@v5 + with: + files: /tmp/coverage.txt + working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli + token: ${{ secrets.CODECOV_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/validate-pr.yml new/docker-cli-28.2.2_ce/.github/workflows/validate-pr.yml --- old/docker-cli-28.2.2_ce/.github/workflows/validate-pr.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/validate-pr.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,88 @@ +name: validate-pr + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +on: + pull_request: + types: [opened, edited, labeled, unlabeled] + +jobs: + check-area-label: + runs-on: ubuntu-24.04 + timeout-minutes: 120 # guardrails timeout for the whole job + steps: + - name: Missing `area/` label + if: contains(join(github.event.pull_request.labels.*.name, ','), 'impact/') && !contains(join(github.event.pull_request.labels.*.name, ','), 'area/') + run: | + echo "::error::Every PR with an 'impact/*' label should also have an 'area/*' label" + exit 1 + - name: OK + run: exit 0 + + check-changelog: + runs-on: ubuntu-24.04 + timeout-minutes: 120 # guardrails timeout for the whole job + env: + HAS_IMPACT_LABEL: ${{ contains(join(github.event.pull_request.labels.*.name, ','), 'impact/') }} + PR_BODY: | + ${{ github.event.pull_request.body }} + steps: + - name: Check changelog description + run: | + # Extract the `markdown changelog` note code block + block=$(echo -n "$PR_BODY" | tr -d '\r' | awk '/^```markdown changelog$/{flag=1;next}/^```$/{flag=0}flag') + + # Strip empty lines + desc=$(echo "$block" | awk NF) + + if [ "$HAS_IMPACT_LABEL" = "true" ]; then + if [ -z "$desc" ]; then + echo "::error::Changelog section is empty. Please provide a description for the changelog." + exit 1 + fi + + len=$(echo -n "$desc" | wc -c) + if [[ $len -le 6 ]]; then + echo "::error::Description looks too short: $desc" + exit 1 + fi + else + if [ -n "$desc" ]; then + echo "::error::PR has a changelog description, but no changelog label" + echo "::error::Please add the relevant 'impact/' label to the PR or remove the changelog description" + exit 1 + fi + fi + + echo "This PR will be included in the release notes with the following note:" + echo "$desc" + + check-pr-branch: + runs-on: ubuntu-24.04 + timeout-minutes: 120 # guardrails timeout for the whole job + env: + PR_TITLE: ${{ github.event.pull_request.title }} + steps: + # Backports or PR that target a release branch directly should mention the target branch in the title, for example: + # [X.Y backport] Some change that needs backporting to X.Y + # [X.Y] Change directly targeting the X.Y branch + - name: Check release branch + id: title_branch + run: | + # get the intended major version prefix ("[27.1 backport]" -> "27.") from the PR title. + [[ "$PR_TITLE" =~ ^\[([0-9]*\.)[^]]*\] ]] && branch="${BASH_REMATCH[1]}" + + # get major version prefix from the release branch ("27.x -> "27.") + [[ "$GITHUB_BASE_REF" =~ ^([0-9]*\.) ]] && target_branch="${BASH_REMATCH[1]}" || target_branch="$GITHUB_BASE_REF" + + if [[ "$target_branch" != "$branch" ]] && ! [[ "$GITHUB_BASE_REF" == "master" && "$branch" == "" ]]; then + echo "::error::PR is opened against the $GITHUB_BASE_REF branch, but its title suggests otherwise." + exit 1 + fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.github/workflows/validate.yml new/docker-cli-28.2.2_ce/.github/workflows/validate.yml --- old/docker-cli-28.2.2_ce/.github/workflows/validate.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.github/workflows/validate.yml 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,82 @@ +name: validate + +# Default to 'contents: read', which grants actions to read commits. +# +# If any permission is set, any permission not included in the list is +# implicitly set to "none". +# +# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - 'master' + - '[0-9]+.[0-9]+' + - '[0-9]+.x' + tags: + - 'v*' + pull_request: + +jobs: + validate: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + target: + - lint + - shellcheck + - validate-vendor + - update-authors # ensure authors update target runs fine + steps: + - + name: Run + uses: docker/bake-action@v6 + with: + targets: ${{ matrix.target }} + + # check that the generated Markdown and the checked-in files match + validate-md: + runs-on: ubuntu-24.04 + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Generate + shell: 'script --return --quiet --command "bash {0}"' + run: | + make -f docker.Makefile mddocs + - + name: Validate + run: | + if [[ $(git diff --stat) != '' ]]; then + echo 'fail: generated files do not match checked-in files' + git --no-pager diff + exit 1 + fi + + validate-make: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + target: + - yamldocs # ensure yamldocs target runs fine + - manpages # ensure manpages target runs fine + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Run + shell: 'script --return --quiet --command "bash {0}"' + run: | + make -f docker.Makefile ${{ matrix.target }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker-cli-28.2.2_ce/.gitignore new/docker-cli-28.2.2_ce/.gitignore --- old/docker-cli-28.2.2_ce/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/docker-cli-28.2.2_ce/.gitignore 2025-05-30 11:39:08.000000000 +0200 @@ -0,0 +1,17 @@ +# if you want to ignore files created by your editor/tools, +# consider a global .gitignore https://help.github.com/articles/ignoring-files +*.exe +*.exe~ +*.orig +.*.swp +.DS_Store +Thumbs.db +.editorconfig +/build/ +/cmd/docker/winresources/versioninfo.json +/cmd/docker/winresources/*.syso +profile.out + +# top-level go.mod is not meant to be checked in +/go.mod +/go.sum