Skip to content

fix(ci): create the release tag on the built commit, document tag-based releases - #10

Merged
alexsavio merged 2 commits into
devfrom
fix/release-tag-target
Aug 10, 2026
Merged

alexsavio merged 2 commits into
devfrom
fix/release-tag-target

Conversation

@alexsavio

@alexsavio alexsavio commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • softprops/action-gh-release defaults target_commitish to the repository's default branch when the tag does not already exist. That branch is master, the upstream mirror, so the tag for v0.43.8-dc.2 was created on plain upstream source: no core/symlinks.go, and GEESEFS_VERSION reading 0.43.8 instead of 0.43.8-dc.2. The uploaded binary was correct, built from dev at a6b351c; only the tag was wrong, so git checkout v0.43.8-dc.2 gives a tree with none of the fork's changes. Pins the tag to the commit the workflow actually built.
  • Makes pushing a tag the documented release process in CLAUDE.md. The tag is then created deliberately at a known commit and the action attaches to it rather than choosing a target, so this class of bug cannot recur. It also publishes a full release directly, with no promote step.
  • Keeps manual dispatch documented as the fallback for when a tag push does not trigger, which happened during a GitHub Actions incident that throttled webhook delivery.

The bug was latent because earlier releases had their tag pushed beforehand, so the action attached to an existing ref. v0.43.8-dc.2 is the first release where it created the tag itself.

The existing v0.43.8-dc.2 tag still needs moving to a6b351c separately; this only prevents a recurrence.

softprops/action-gh-release defaults target_commitish to the repository's
default branch when the tag does not already exist. That branch is the
upstream mirror, so v0.43.8-dc.2 was created on plain upstream source: no
core/symlinks.go, and GEESEFS_VERSION reading 0.43.8 rather than
0.43.8-dc.2, while the uploaded binary was correctly built from dev.

Pin the tag to the commit the workflow actually built. The bug was latent
until now because previous releases had their tag pushed beforehand, so
the action attached to an existing ref instead of creating one.
Pushing a tag is the safer path: the tag is created deliberately at a
known commit, the workflow builds from that same ref, and the release
action attaches to an existing tag instead of choosing where to put one.
That removes the failure this branch fixes, and publishes a full release
without a promote step.

Keeps manual dispatch documented as the fallback for when a tag push does
not trigger, with the prerelease caveat spelled out.
@alexsavio alexsavio changed the title fix(ci): create the release tag on the built commit fix(ci): create the release tag on the built commit, document tag-based releases Aug 10, 2026
@alexsavio
alexsavio merged commit b8523c4 into dev Aug 10, 2026
2 checks passed
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