From b7cb1697ea275e32cdfc5ce4adc1477f3233be04 Mon Sep 17 00:00:00 2001 From: Dallin Romney Date: Wed, 22 Jul 2026 13:24:48 +0900 Subject: [PATCH] fix(release): queue Docker publications --- .github/actionlint.yaml | 7 +++++++ .github/workflows/docker-channel-promote.yml | 1 + .github/workflows/docker-release.yml | 1 + src/dockerfile.test.ts | 2 ++ 4 files changed, 11 insertions(+) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index e0cf95b4e97a..29b4c9ad13f5 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -29,3 +29,10 @@ paths: - 'constant expression "false" in condition' # actionlint's built-in runner label allowlist lags Blacksmith additions. - 'label "blacksmith-16vcpu-[^"]+" is unknown\.' + # GitHub Actions supports concurrency.queue, but actionlint does not yet model it. + .github/workflows/docker-release.yml: + ignore: + - 'unexpected key "queue" for "concurrency" section' + .github/workflows/docker-channel-promote.yml: + ignore: + - 'unexpected key "queue" for "concurrency" section' diff --git a/.github/workflows/docker-channel-promote.yml b/.github/workflows/docker-channel-promote.yml index 854f2d4f2846..12e1cd1862c5 100644 --- a/.github/workflows/docker-channel-promote.yml +++ b/.github/workflows/docker-channel-promote.yml @@ -104,6 +104,7 @@ jobs: concurrency: group: docker-release-publish cancel-in-progress: false + queue: max permissions: contents: read packages: write diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 0c36ad1b2cd4..9cb0adeedb60 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -21,6 +21,7 @@ on: concurrency: group: ${{ github.event_name == 'workflow_dispatch' && format('docker-release-manual-{0}', inputs.tag) || 'docker-release-publish' }} cancel-in-progress: false + queue: max env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" diff --git a/src/dockerfile.test.ts b/src/dockerfile.test.ts index c252c4354934..316520a946bf 100644 --- a/src/dockerfile.test.ts +++ b/src/dockerfile.test.ts @@ -524,8 +524,10 @@ describe("Dockerfile", () => { const promoteWorkflow = await readFile(dockerChannelPromoteWorkflowPath, "utf8"); expect(releaseWorkflow).not.toContain("promote-channel"); + expect(releaseWorkflow).toContain("queue: max"); expect(promoteWorkflow).toContain("Docker channel promotion must be dispatched from main"); expect(promoteWorkflow).toContain("group: docker-release-publish"); + expect(promoteWorkflow).toContain("queue: max"); expect(promoteWorkflow).toContain("environment: docker-release"); expect(promoteWorkflow).toContain("node scripts/docker-channel-promote.mjs"); expect(promoteWorkflow).toContain('--image "${GHCR_IMAGE}"');