Skip to content

Mutable Release Tag (AST-151094)#1491

Open
cx-aniket-shinde wants to merge 5 commits intomainfrom
other/mutable-release-tag
Open

Mutable Release Tag (AST-151094)#1491
cx-aniket-shinde wants to merge 5 commits intomainfrom
other/mutable-release-tag

Conversation

@cx-aniket-shinde
Copy link
Copy Markdown
Collaborator

No description provided.

@cx-aniket-shinde cx-aniket-shinde changed the title Other/mutable release tag (AST-151094) mutable release tag (AST-151094) May 5, 2026
@cx-aniket-shinde cx-aniket-shinde changed the title mutable release tag (AST-151094) Mutable Release Tag (AST-151094) May 5, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Logo
Checkmarx One – Scan Summary & Details8c3b81ad-8979-495d-99e8-fcb95da418cb

Great job! No new security vulnerabilities introduced in this pull request

cx-aniket-shinde and others added 3 commits May 5, 2026 21:31
…re build completes

- Set release.disable: true in both goreleaser configs so GoReleaser builds
  artifacts and uploads to S3/Docker without ever calling the GitHub Releases
  API (which previously created the immutable tag as a side effect of draft
  release creation)
- Replace the draft publish step with an explicit push-tag + gh release create
  sequence: tag only hits GitHub after all artifacts are fully built and signed,
  making the entire build phase safely retryable under org-level immutable tag rules
- Dev builds get --prerelease, prod builds get --latest via gh release create

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ploaded

gh release create without --draft publishes the release immediately via the
API before artifact uploads complete, leaving a window where users see an
empty release. Using --draft ensures all .tar.gz, .zip, and checksums files
are fully uploaded before gh release edit flips it to published.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
The explicit git push step published the tag before any release or assets
existed, creating a window where the tag was public with nothing attached.
If gh release create then failed, the tag was permanently stranded.

New sequence:
- gh release create --draft --target <sha>: uploads all assets, tag not
  yet public (GitHub defers the ref until the draft is published)
- gh release edit --draft=false: tag and release become public together

Also adds:
- set -euo pipefail + shopt -s failglob so an empty dist/ or any command
  failure exits loudly before touching GitHub
- Cleanup step (if: failure()) that deletes a leftover draft so the next
  run is not blocked; --cleanup-tag is best-effort (|| true) since the
  org immutable-tag policy may prevent tag deletion, but the release
  deletion alone is sufficient to unblock a retry

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
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