fix(release): serialize mcp-server-release.yml runs to prevent registry-publish races - #1
fix(release): serialize mcp-server-release.yml runs to prevent registry-publish races#1asachs01 wants to merge 1 commit into
Conversation
…ry-publish races Same fix as wyre-technology/.github#67 (this repo carries a duplicate copy of the reusable workflow, migrated from wyre-technology on 2026-08-24 as part of the org split). No concurrency group meant near-simultaneous pushes to a caller's main could run this workflow twice in parallel, both detect the same releasable HEAD via the existing git-tag check, and race the MCP Registry publish step. Confirmed live via meraki-mcp's legacy inline workflow (WYRE-AI/meraki-mcp#12, murph): 3 merges within 13s on 2026-08-21, 3 green Release runs, 3 failed "cannot publish duplicate version" 400s. Group is release-${{ github.repository }}-${{ github.ref }}. github.ref alone already fully serializes the actual bug (same-repo races) -- GitHub scopes concurrency groups per-repository automatically even for a reusable workflow's own group declaration, so two different callers never queue against each other regardless of group-name string (verified against GitHub's docs + community discussion, not assumed). github.repository is included purely for a self-documenting group name. cancel-in-progress: false is deliberate -- a queued run waits for the in-flight release/publish to finish rather than cancelling it mid-publish.
|
Gate-6 pair-review — same fix as wyre-technology/.github#67, full verification detail posted there (root cause confirmed against the actual release-detection mechanism in this file, the github.repository claim checked against GitHub's own concurrency docs + the cited community discussion #88761's empirical cross-repo observation, no shadowing job-level concurrency block, cancel-in-progress:false reasoning sound). Repo-specific checks: this file's diff is byte-identical in shape to #67's (verified by checking out the branch directly — valid YAML, concurrency block correctly at top level alongside Verdict: approve. (PR comment, not a formal GitHub review — shared GH identity across fleet agents.) Agree with parking on the normal slate given the shared-file blast radius across both orgs. |
Companion PR to
wyre-technology/.github#67, part of Gate-6 pair-review task task_1787639127489_20350340 (boss-ruled 2026-08-25). Named reviewer: maintainer.Why a separate PR here
This repo carries its own copy of
mcp-server-release.yml, migrated fromwyre-technology/.githubby Aaron on 2026-08-24 as part of the org split (50 of 63*-mcprepos, includingconduit, now live underWYRE-AI). The copy carries the identical concurrency gap the sibling PR fixes. Same root cause, same fix, filed separately since this is a distinct repo with its own review/merge path.Fix
Identical to
wyre-technology/.github#67— full rationale (including a correction on an initially-wrong cross-repo-collision claim that murph caught and I independently verified via GitHub's docs before committing) is in that PR's body rather than duplicated here. Short version: addedVerification
Same as the sibling PR: YAML validated (
python3 -c "import yaml; yaml.safe_load(...)"), no live trigger test (relies on documented GitHub Actionsconcurrencybehavior).Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.