You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
release-please: use queue: max on the concurrency group once actionlint accepts it #40
#39 puts the release-please-reusable.yml job in a repo-wide concurrency group so that duplicate runs for one push wait instead of racing. GitHub's default for a group is queue: single: one pending run, which a newer run cancels. When three runs overlap (for example, a push that GitHub starts twice while an earlier run is still going), one of them ends cancelled. No release work is lost, because the surviving run reads the branch's current HEAD. But a canceled check rolls the commit's status up as a failure, which is the kind of noise #39 set out to remove.
This will happen in practice. Replaying each caller's last 100 Release Please runs through a one-running, one-pending queue predicts 37 canceled runs out of 1,354, across 9 repos, where merges land seconds apart. Those same runs had 28 failures from all causes.
queue: max keeps up to 100 pending runs and cancels only beyond that, and it is valid alongside cancel-in-progress: false (workflow syntax: concurrency).
Blocker: actionlint rejects the key. parseConcurrency in parse.go accepts only group and cancel-in-progress, in both openCoreEMR/actionlint@v1.7.12-oce.2 and upstream rhysd/actionlint main, so this repo's actionlint check would fail. Upstream has an open PR for it (rhysd/actionlint#654, tracking issue rhysd/actionlint#657).
#39 puts the
release-please-reusable.ymljob in a repo-wide concurrency group so that duplicate runs for one push wait instead of racing. GitHub's default for a group isqueue: single: one pending run, which a newer run cancels. When three runs overlap (for example, a push that GitHub starts twice while an earlier run is still going), one of them endscancelled. No release work is lost, because the surviving run reads the branch's current HEAD. But a canceled check rolls the commit's status up as a failure, which is the kind of noise #39 set out to remove.This will happen in practice. Replaying each caller's last 100 Release Please runs through a one-running, one-pending queue predicts 37 canceled runs out of 1,354, across 9 repos, where merges land seconds apart. Those same runs had 28 failures from all causes.
queue: maxkeeps up to 100 pending runs and cancels only beyond that, and it is valid alongsidecancel-in-progress: false(workflow syntax:concurrency).Blocker: actionlint rejects the key.
parseConcurrencyinparse.goaccepts onlygroupandcancel-in-progress, in bothopenCoreEMR/actionlint@v1.7.12-oce.2and upstreamrhysd/actionlintmain, so this repo's actionlint check would fail. Upstream has an open PR for it (rhysd/actionlint#654, tracking issue rhysd/actionlint#657).To do
concurrency.queue(cherry-picking concurrency: Add support forqueuekey rhysd/actionlint#654 is the likely route), release it, and bump the pin in.github/workflows/actionlint.yml.queue: maxto theconcurrencyblock in.github/workflows/release-please-reusable.yml.Done when three overlapping Release Please runs in one caller repo all finish green.