Skip to content

concurrency: Add support for queue key - #654

Open
vvoland wants to merge 1 commit into
rhysd:mainfrom
vvoland:concurrency-queue-max
Open

vvoland wants to merge 1 commit into
rhysd:mainfrom
vvoland:concurrency-queue-max

Conversation

@vvoland

@vvoland vvoland commented Apr 22, 2026 •

Copy link
Copy Markdown

GitHub Actions shipped a new queue key under the concurrency section to allow pending workflow runs to queue instead of being cancelled.

Allowed values are "max" and "single" (default).
The combination of queue: max with cancel-in-progress: true is not permitted.

Reference: https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency#example-queueing-multiple-pending-runs

GitHub Actions shipped a new `queue` key under the `concurrency` section
to allow pending workflow runs to queue instead of being cancelled.

Allowed values are "max" and "single" (default).
The combination of `queue: max` with `cancel-in-progress: true` is not
permitted.

Reference: https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency#example-queueing-multiple-pending-runs

Signed-off-by: Paweł Gronowski <git@grono.dev>
@vvoland
vvoland force-pushed the concurrency-queue-max branch from e7ae0d6 to 644076a Compare May 20, 2026 15:01
@vvoland

vvoland commented May 20, 2026

Copy link
Copy Markdown
Author

This is now official, updated the commit message

@vvoland

vvoland commented May 20, 2026

Copy link
Copy Markdown
Author

@rhysd PTAL when you have a chance! 🤗

bindsi added a commit to microsoft/hve-core that referenced this pull request May 28, 2026
gh-aw v0.76.1 emits `concurrency.queue` in compiled `*.lock.yml`
workflows, but actionlint v1.7.12 (latest) does not yet recognize
the key. Add a scoped ignore pattern under the existing
`.github/workflows/*.lock.yml` paths block so YAML lint passes
on PRs that include recompiled lock files.

Remove the pattern once rhysd/actionlint#654 lands.

Refs #1689
@maikelvdh

Copy link
Copy Markdown
Contributor

@rhysd is it possible to get this included in a next release?

@dcalavrezo-qorix

Copy link
Copy Markdown

@rhysd could this be merged, please?

@shogo82148

Copy link
Copy Markdown
Contributor

I sent a ping on X, and @rhysd said, "I will try to make some time this weekend." So, please wait until the weekend.

https://x.com/Linda_pp/status/2071952687546225045?s=20

dcalavrezo-qorix added a commit to qorix-group/cicd-workflows that referenced this pull request Jul 1, 2026
actionlint v1.7.11 does not yet recognize the queue key in
concurrency sections. Add .github/actionlint.yml to ignore this
specific error until rhysd/actionlint#654 is merged and released.

Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
dcalavrezo-qorix added a commit to qorix-group/cicd-workflows that referenced this pull request Jul 1, 2026
actionlint v1.7.11 does not yet recognize the queue key in
concurrency sections. Add -ignore flag to the pre-commit hook
until rhysd/actionlint#654 is merged and released.

Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
AlexanderLanin pushed a commit to eclipse-score/cicd-workflows that referenced this pull request Jul 1, 2026
…132)

Add queue: max to the docs-deploy concurrency group so that
pending runs are queued rather than skipped.

actionlint v1.7.11 does not yet recognize the queue key in
concurrency sections. Add .github/actionlint.yml to ignore this
specific error until rhysd/actionlint#654 is merged and released.

Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com>
@tueda tueda mentioned this pull request Jul 10, 2026
@maikelvdh

Copy link
Copy Markdown
Contributor

I sent a ping on X, and @rhysd said, "I will try to make some time this weekend." So, please wait until the weekend.

https://x.com/Linda_pp/status/2071952687546225045?s=20

Looks like it didnt work out yet! It would be really nice to have a new version @rhysd which would be covering all recent updates from GitHub in the actions ecosystem.

kyle-sexton added a commit to melodic-software/ci-workflows that referenced this pull request Jul 27, 2026
## What

PR-A1 of the approved claude-review-lanes plan
(`docs/topics/claude-review-lanes/PLAN.md`, committed here) —
structural, behavior-preserving:

- **Three composite actions** extracted from the review lanes' embedded
steps, unreferenced until PR-A2 repoints the reusables at this PR's
merge SHA (self-reference pins resolve only post-merge):
- `claude-lane-freshness` — live superseded-head guard (github-script).
- `claude-lane-outcome` — outcome reporter with the infra-failure
classifier rewritten from the generated bash/jq embed into
`classify.cjs` on the github-script runtime (resolves the plan's F7: no
more jq/runner-tool dependency). Full 23-case shell corpus ported to
`node --test` (`classify.test.cjs`, co-located; wired into ci.yml).
- `claude-lane-marker-comment` — marker-comment lifecycle (upsert on
failure / clear on success), owning the fork-PR guard; lane strings are
inputs.
- **`.github/actionlint.yaml`** — pre-approved suppression for
actionlint 1.7.12's rejection of the GA `concurrency.queue` key
(rhysd/actionlint#654), scoped to that one syntax-check message, with
removal trigger. Probe evidence in PLAN.md Phase 0.
- **PLAN.md** — plan artifact + Phase 0 probe results (queue
serialization on all three shapes, ready_for_review draft payload,
kill-switch skip conclusions).

The four generated-embed classifier files (`classify-infra-failure.*`,
`render-classify-infra-failure.*`) retire in PR-A2 with the embed
replacement — the render tripwire still guards the live embeds until
then.

No linked issue (the plan's issue sweep closes #150/#158/#227/#242 at
Phase 3f).

## Related

- `docs/topics/claude-review-lanes/PLAN.md` — the approved plan; this is
Phase 2 PR-A1.
- melodic-software/standards#278 — Phase 1 (REVIEW.md lane scoping),
merged separately.
- rhysd/actionlint#654 — upstream gap behind the actionlint suppression.

## Verification

- `node --test .github/actions/claude-lane-outcome/*.test.cjs` — 10/10
pass (ported corpus).
- `node --test .github/scripts/*.test.cjs` — 273 pass; `bash
.github/scripts/classify-infra-failure.test.sh` still green (untouched
here).
- zizmor on all three new action files — no findings.
- actionlint 1.7.12 with the new config: queue suppression verified
empirically (exit 0 with config, exit 1 without).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/standards that referenced this pull request Jul 27, 2026
ci-workflows is a manifest target carrying its own .github/actionlint.yaml
— the canonical origin this component's content mirrors — yet had no
actionlint classification, which the ownership model reads as "not
classified". Marks it locally-owned so the most relevant repo is
deliberately classified; the removal trigger on rhysd/actionlint#654
fires there too.

Plan output for ci-workflows confirms no materialization:
"locally-owned actionlint (not modified)".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lionell4w

Copy link
Copy Markdown

We hit this in production at Noetive. Two of our deploy workflows share a concurrency group with cancel-in-progress: false. Under the default queue: single, a Terraform run that ended up skipping every job joined the group second and cancelled the deploy that was waiting. The merge landed, and its migration never shipped. That has happened 7 times in under 4 weeks.

queue: max, which GitHub added on 2026-05-07 (changelog), fixes it, but actionlint 1.7.12 rejects it:

unexpected key "queue" for "concurrency" section. expected one of "cancel-in-progress", "group" [syntax-check]

actionlint is a required check for us, so for now we carry a narrow -ignore for exactly that message, with a pointer to this PR. We'd drop it as soon as this lands in a release. +1 to merging this, and thank you for actionlint.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Actionlint does not know about queue: key for concurrency