Make the release tag reachable when it is missing - #15
Merged
Conversation
The 0.2.1 publish succeeded and the tag step died with "unable to auto-detect email address": an annotated tag records a tagger and a bare runner has no git identity. Fixed by configuring the identity GitHub uses for its own bot. The larger problem is that the failure was unrepairable. Tagging was gated on `needed == 'true'`, and `needed` comes from asking the registry whether the version is already published. After a successful publish the answer is yes, so re-running skipped every remaining step including the tag. The one recovery path the workflow offers could not fix the one step that had failed. So tagging no longer depends on this run having published. It runs whenever the tag is absent and exits quietly when it is present, which makes a re-run repair a missing tag instead of confirming there is nothing to do. It stays ordered after the publish, so a tag never points at a version that failed to go out.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
The 0.2.1 publish succeeded and the run is still marked failed, because the tag step died:
An annotated tag records a tagger, and a bare runner has no git identity. One-line fix.
The part worth fixing properly
The failure was unrepairable by the workflow's own recovery path. Tagging was gated on
needed == 'true', andneededcomes from asking the registry whether the version is already there. After a successful publish that answer isyes, so re-running skips every remaining step — including the tag.workflow_dispatchexists specifically to re-run after a failure, and it could not fix the only step that had failed.Tagging now runs whenever the tag is absent and exits quietly when it is present. A re-run repairs a missing tag rather than confirming there is nothing to do. It stays ordered after the publish, so a tag never points at a version that failed to go out.
Verification
Re-running the workflow on master after this merges should create
v0.2.1and leave everything else skipped, which exercises exactly the path that was broken.