chore(ci): dont cancel releases job to prevent skipped publishes#1780
Merged
Conversation
Concurrent merges to main trigger overlapping release jobs. When two run in parallel, multi-semantic-release sees the branch as "behind the remote one" and silently skips publishing — a merged feat/fix never reaches npm (e.g. @forestadmin/workflow-executor stuck at 1.21.1 despite a merged feat). Add a per-branch concurrency group to the release job so runs serialize. cancel-in-progress stays false: a release must never be interrupted mid-publish. The tip run then drains the whole pending backlog. Deliberately not changing the checkout to the branch tip: the dist cache is keyed by github.sha, so releasing from a different ref would publish stale build artifacts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Coverage Impact This PR will not change total coverage. 🚦 See full report on Qlty Cloud »🛟 Help
|
arnaud-moncel
approved these changes
Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Problem
build.ymlhas noconcurrencykey, so Release packages jobs from successive merges can overlap, andmulti-semantic-releaseskips any run whose checkout is no longer the branch tip (The local branch main is behind the remote one, therefore a new version won't be published).Verified forensics of today's incident (2026-07-24)
agent@1.90.0,agent-testing@1.1.55,forest-cloud@1.12.154cleanly.feat(workflow-executor), PRD-809).fix(ai-proxy)).d6d937103, but tip was alreadyff6589fcf→ behind → skips all 23 packages →workflow-executor@1.22.0not published.f7abb4b08+ tag@forestadmin/ai-proxy@1.12.2— thennpm publishfails with a transient sigstore error (TLOG_CREATE_ENTRY_ERROR, 409) → the package never reached npm → msr aborts before workflow-executor → job failure.ff6589fcfbut remote now hasf7abb4b08→ behind →Released 0 of 23→ job green.Net: npm has
ai-proxy@1.12.1andworkflow-executor@1.21.1; git has a ghost tagai-proxy@1.12.2; main is green.Fix (this PR)
Per-branch
concurrencygroup on thereleasejob,cancel-in-progress: false— release runs serialize instead of overlapping, and a release is never interrupted mid-publish.What this deliberately does NOT do
ref:tip checkout / nogit reset: the dist cache is keyed bygithub.sha(fail-on-cache-miss: true); releasing from another ref would publish stale artifacts.@forestadmin/ai-proxy@1.12.2is tagged in git but absent from npm; semantic-release now considers it released and will never publish it. Needs a manual decision (publish from the tag manually, drop the tag so it re-releases, or fold it into the next ai-proxy release).Effect on the current backlog
Merging this PR is a push to
main: its release run (serialized, at tip) will publish the pending@forestadmin/workflow-executor@1.22.0(verified: no 1.22.0 tag exists, feat is pending) and dispatch the Docker image build. It will NOT resurrectai-proxy@1.12.2(see ghost release above).🤖 Generated with Claude Code