Skip to content

fix(ci): prevent burned tags by delaying tag push#67

Merged
kolkov merged 1 commit into
mainfrom
fix/release-workflow-no-burned-tags
Jan 20, 2026
Merged

fix(ci): prevent burned tags by delaying tag push#67
kolkov merged 1 commit into
mainfrom
fix/release-workflow-no-burned-tags

Conversation

@kolkov
Copy link
Copy Markdown
Contributor

@kolkov kolkov commented Jan 20, 2026

Summary

Prevents version numbers from being "burned" when GoReleaser fails.

Problem

Previous workflow:

  1. Tests pass
  2. Push tag ← tag is now on remote
  3. Run GoReleaser
  4. If GoReleaser fails → tag already pushed → version "burned"

Solution

New workflow (based on Carlos Becker's approach):

  1. Tests pass
  2. Create tag locally (NOT pushed!)
  3. Run GoReleaser
  4. GoReleaser creates GitHub release → GitHub API auto-creates remote tag
  5. If GoReleaser fails → tag NOT on remote → can retry with same version

Changes

  • Remove git push origin "$TAG" before GoReleaser
  • GoReleaser uses local tag for version detection
  • Add verification step to confirm tag was pushed after release
  • Update architecture comments

References

- Create tag locally BEFORE GoReleaser (not pushed yet)
- GoReleaser creates GitHub release which auto-pushes the tag
- If GoReleaser fails, tag is NOT pushed = version NOT burned
- Add verification step to ensure tag was pushed

This matches the approach from Carlos Becker (GoReleaser author):
https://carlosbecker.com/posts/goreleaser-create-tag-action/

Fixes the issue where failed releases would burn version numbers.
@kolkov kolkov merged commit dc1490d into main Jan 20, 2026
3 checks passed
@kolkov kolkov deleted the fix/release-workflow-no-burned-tags branch January 20, 2026 09:44
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