Skip to content

ci: serialize release creation so the upload matrix never races#19

Merged
TMHSDigital merged 1 commit into
mainfrom
ci/serialize-release
Jun 4, 2026
Merged

ci: serialize release creation so the upload matrix never races#19
TMHSDigital merged 1 commit into
mainfrom
ci/serialize-release

Conversation

@TMHSDigital
Copy link
Copy Markdown
Owner

Splits the tag release path into create-release (single job, owns creation) + upload-assets (5-way matrix, needs create-release, only adds files). Removes the concurrent-create race that failed on action-gh-release@v3 with 'already_exists (tag_name)'. Preserves 5 targets, asset names, 10 assets, checksums, GITHUB_TOKEN, contents: write on release stages. Still @v2 here; @V3 bump lands after rc validation.

Splits the tag release path in go.yml into two stages:
- create-release: a single job (needs build) that ensures the GitHub release
  for the tag exists before any assets are uploaded, so exactly one job owns
  release creation.
- upload-assets: the existing 5-way build matrix (needs create-release) that
  builds each binary plus its .sha256 and only adds files to the already
  existing release.

This removes the concurrent-create race where all five matrix jobs tried to
create the same release. It worked on action-gh-release@v2 only by luck and
failed on @V3 with "already_exists (tag_name)". With creation serialized, v3
is safe to adopt.

Preserves the same 5 platform targets, asset names, 10 total assets (5 binaries
plus 5 .sha256), checksum generation, GITHUB_TOKEN usage, and contents: write
only on the release stages. Still on @v2 in this commit; the @V3 bump lands
separately after validation.

Co-authored-by: Cursor <cursoragent@cursor.com>
@TMHSDigital TMHSDigital merged commit 6a2ed8a into main Jun 4, 2026
7 checks passed
@TMHSDigital TMHSDigital deleted the ci/serialize-release branch June 5, 2026 00:05
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.

1 participant