Emit queue: max on top-level workflow concurrency groups - #53731
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates compiler-generated workflow concurrency so non-cancelling runs queue sequentially instead of displacing pending runs.
Changes:
- Emits top-level
queue: maxunless cancellation or the feature opt-out is active. - Updates concurrency tests, documentation, and golden fixtures.
- Recompiles generated workflow lock files.
Show a summary per file
| File | Description |
|---|---|
pkg/workflow/concurrency.go |
Generates top-level queue configuration. |
pkg/workflow/concurrency_test.go |
Updates concurrency expectations. |
docs/src/content/docs/reference/concurrency.md |
Documents defaults and opt-out. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden |
Updates golden output. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden |
Updates golden output. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden |
Updates golden output. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/pi.golden |
Updates engine golden output. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/gemini.golden |
Updates engine golden output. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden |
Updates engine golden output. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/codex.golden |
Updates engine golden output. |
pkg/workflow/testdata/TestWasmGolden_AllEngines/claude.golden |
Updates engine golden output. |
.github/workflows/*.lock.yml (273 files) |
Regenerates workflows with top-level queue: max. |
Review details
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 283/283 changed files
- Comments generated: 1
- Review effort level: Balanced
| group: "gh-aw-mixed-call-worker-${{ github.run_id }}" | ||
| queue: max`, |
|
@copilot make sure there is a way to turn off Q-Max for that frontmatter. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
The opt-out already applies to the top-level group: |
The compiler already emits
queue: maxby default on job-level concurrency groups (agent, output, conclusion), but the top-level workflow concurrency group was left at the Actions default (queue: single). This meant back-to-back triggers — most notably rapid pushes — could displace a queued run before it ever executed, silently dropping work instead of queuing it.Compiler change
GenerateConcurrencyConfig(pkg/workflow/concurrency.go) now appendsqueue: maxto the generated top-level group whenevercancel-in-progressis not enabled for that trigger (the two are mutually exclusive per GitHub Actions).features.group-concurrency-queue: falseopt-out viaisGroupConcurrencyQueueEnabled, consistent with job-level groups.Tests & fixtures
pkg/workflow/concurrency_test.goexpectations for all non-cancelling trigger cases.Generated workflows
.github/workflows/*.mdsources so.lock.ymlfiles reflect the new default (each gains a singlequeue: maxline under its top-level concurrency block; PR-triggered workflows are unaffected since they usecancel-in-progress: true).Docs
docs/src/content/docs/reference/concurrency.mdto describe the new default and the opt-out.