Skip to content

fix(ci): bump goreleaser to v2.17.0, verify archive integrity - #611

Merged
jpillora merged 1 commit into
masterfrom
fix-release-gz-corruption
Jul 18, 2026
Merged

fix(ci): bump goreleaser to v2.17.0, verify archive integrity#611
jpillora merged 1 commit into
masterfrom
fix-release-gz-corruption

Conversation

@jpillora

Copy link
Copy Markdown
Owner

Fixes the corrupt .gz release assets reported in #610 (rc1's linux_amd64.gz + darwin_amd64.gz).

Root cause (A/B tested): goreleaser v2.12.7 (pinned in CI, Oct 2025) silently emits corrupt gz archives — reproduced 3/3 locally with our config (exit 0, no warnings). v2.17.0 (the version that built v1.11.8's clean assets via goreleaser:latest) is clean 3/3 on the same config/machine.

Changes:

  • Pin bumped v2.12.7 → v2.17.0
  • New Verify archive integrity step after goreleaser: gzip -t / unzip -t every dist archive, failing the job on corruption — combined with the two-stage release, a broken draft can never be published/promoted

After merge: tag v1.12.0-rc2 to supersede rc1.

🤖 Generated with Claude Code

goreleaser v2.12.7 silently produced corrupt .gz archives in the
v1.12.0-rc1 release (#610): linux_amd64.gz and darwin_amd64.gz had valid
gzip headers but corrupt deflate streams, with exit code 0 and no
warnings. Reproduced locally 3/3 runs on v2.12.7; v2.17.0 (which built
the clean v1.11.8) produced clean archives 3/3 with the same config.

Also add a post-goreleaser verification step that gzip/unzip -t tests
every dist archive — a silent corruption now fails the release job,
which in the two-stage pipeline means the draft is never published.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 18, 2026 14:17
@jpillora
jpillora merged commit 016edaa into master Jul 18, 2026
6 checks passed
@jpillora
jpillora deleted the fix-release-gz-corruption branch July 18, 2026 14:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the release pipeline to prevent publishing corrupted release artifacts by upgrading the pinned GoReleaser version and adding an explicit post-build integrity check for produced archives.

Changes:

  • Bump GoReleaser pin in CI from v2.12.7 to v2.17.0 to address corrupted .gz assets reported in #610.
  • Add a “Verify archive integrity” step that runs gzip -t / unzip -t over dist/ archives and fails the release job if any are corrupt.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
Comment on lines +97 to +99
# goreleaser can exit 0 while emitting corrupt archives (#610) —
# fail the job so a broken draft is never published (stage 2 only
# promotes what a human publishes, and a red job blocks that)
@jpillora jpillora mentioned this pull request Jul 18, 2026
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.

2 participants