fix(ci): derive release outcome from git tags, not publish log prose - #106
Merged
ifaouibadi merged 1 commit intoSep 2, 2026
Merged
Conversation
changesets 3.0.1 does not print "New tag:", so a fully successful publish was classified as "nothing to do" and the tag push, GitHub Release and summary steps were all skipped. The published set now comes from the git tags changesets creates, diffed around the publish call. A zero exit whose log reports published packages but produced no tags now fails the job instead of being read as "none", so a changesets upgrade that stops tagging trips a red build. Push the tags explicitly: changesets creates lightweight tags, which git push --follow-tags does not push.
Contributor
|
Thanks for the pull request — it is in the queue and a maintainer will review it. This repository is maintained on a weekly cadence. Anything opened from outside gets What happens next:
If this is a security fix for an unreported vulnerability, please close it and use |
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.
release.ymldecided whether a release had happened by grepping the publish output forNew tag:. changesets 3.0.1 does not emit that string, so a fully successful publish produced an empty match, was classifiednone, and the tag push, GitHub Release and summary steps were all skipped — while every package did reach the registry.What changed
none. That is the tripwire: a changesets upgrade that stops tagging goes red instead of silently losing another release's tags.Push tagspushes the derived tag list explicitly. changesets creates lightweight tags, whichgit push --follow-tagsdoes not push — so that step would have pushed nothing even when it did run.The non-zero-exit-goes-red behaviour added previously is unchanged and covered below.
Verification
The
run:scripts were extracted from this workflow and executed against a stubbedpnpm changeset publishin a throwaway git repo — 11 assertions, all passing:resultpublishednonefailedfailedPlus: the push step consumes the emitted list and calls
git push origin <tag> <tag>, and an empty list exits 1 rather than pushing nothing.Targeted at
@changesets/cli3.0.1, pinned in a comment at the publish step and enforced by the tripwire above.