Skip to content

fix(ci): derive release outcome from git tags, not publish log prose - #106

Merged
ifaouibadi merged 1 commit into
developfrom
agent/hendrik-visser-growae-technica/01a99b4313ff
Sep 2, 2026
Merged

fix(ci): derive release outcome from git tags, not publish log prose#106
ifaouibadi merged 1 commit into
developfrom
agent/hendrik-visser-growae-technica/01a99b4313ff

Conversation

@ifaouibadi

Copy link
Copy Markdown
Contributor

release.yml decided whether a release had happened by grepping the publish output for New tag:. changesets 3.0.1 does not emit that string, so a fully successful publish produced an empty match, was classified none, and the tag push, GitHub Release and summary steps were all skipped — while every package did reach the registry.

What changed

  • The published set is now read from the git tags changesets creates, diffed around the publish call, instead of from log prose.
  • A zero exit whose log reports published packages but produced no new tags now fails the job rather than being read as none. That is the tripwire: a changesets upgrade that stops tagging goes red instead of silently losing another release's tags.
  • Push tags pushes the derived tag list explicitly. changesets creates lightweight tags, which git push --follow-tags does not push — so that step would have pushed nothing even when it did run.
  • The failure summary no longer asserts that nothing reached the registry, since that is not true of the new tripwire branch.

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 stubbed pnpm changeset publish in a throwaway git repo — 11 assertions, all passing:

scenario result step exit
packages publish (tags created) published 0
nothing to publish none 0
publish exits non-zero failed 1
log says published, no tags created failed 1

Plus: 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/cli 3.0.1, pinned in a comment at the publish step and enforced by the tripwire above.

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.
@github-actions github-actions Bot added the triage Acknowledged, not yet routed label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
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
a human reply within 2 business days; this comment is automation confirming your
pull request landed, and it is not that reply.

What happens next:

  • CI runs on the pull request. Check, Build and Test need to be green before
    review — you can push fixes straight to the same branch.
  • A maintainer reviews it against CONTRIBUTING.md.
  • A change to a package's public API, or a new dependency, needs a maintainer
    decision before it can merge. That is where the call gets made rather than a
    delay, and we will tell you either way instead of leaving it open.

If this is a security fix for an unreported vulnerability, please close it and use
the private channel first
SECURITY.md.
A public pull request describes the flaw to everyone before the fix is released.

@ifaouibadi
ifaouibadi merged commit f9fccf3 into develop Sep 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

triage Acknowledged, not yet routed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant