Skip to content

ci(release): rewrite release notes when one package fails to publish - #901

Merged
HugoRCD merged 1 commit into
mainfrom
ci/release-notes-partial-publish
Oct 17, 2026
Merged

HugoRCD merged 1 commit into
mainfrom
ci/release-notes-partial-publish

Conversation

@HugoRCD

@HugoRCD HugoRCD commented Oct 17, 2026

Copy link
Copy Markdown
Member

Written by an AI agent on behalf of @HugoRCD. @HugoRCD has not reviewed it yet.

When one package fails to publish, the release job now still rewrites the release notes and pins Latest for the packages that did publish.

What happened in 2.33.0

Run 39043309174 (attempt 1) published evlog@2.33.0, @evlog/cli@0.11.0 and @evlog/telemetry@0.3.5, then failed on @evlog/signals@0.2.1 (E404: the package had no npm Trusted Publisher yet). Because the publish step failed, every later step was skipped:

failure	Create Release PR or Publish
skipped	Push tags
skipped	Rewrite release notes and mark evlog Latest

So the three releases kept changesets' default ### Minor Changes / ### Patch Changes bodies. The re-run published Signals and only rewrote that one release, since it only covers what it publishes. The other three were rewritten by hand afterwards.

Why the fix works

The pinned changesets/action (v1.9.0, src/index.ts) sets the outputs for the packages that did publish before it exits with the error:

if (result.published) {
  core.setOutput("published", "true");
  core.setOutput("publishedPackages", JSON.stringify(result.publishedPackages));
}

if (result.exitCode !== 0) {
  core.error(`Publish command exited with code ${result.exitCode}, but some packages were published: …`);
  process.exit(result.exitCode);
}

The failed run shows that message: Publish command exited with code 1, but some packages were published: @evlog/cli@0.11.0, evlog@2.33.0, @evlog/telemetry@0.3.5.

The two steps after it now use !cancelled() && steps.changesets.outputs.published == 'true' instead of the implicit success(). They run for whatever reached npm, and the job still fails, so the broken package stays visible.

       - name: Push tags
-        if: steps.changesets.outputs.published == 'true'
+        if: ${{ !cancelled() && steps.changesets.outputs.published == 'true' }}
 …
       - name: Rewrite release notes and mark evlog Latest
-        if: steps.changesets.outputs.published == 'true'
+        if: ${{ !cancelled() && steps.changesets.outputs.published == 'true' }}

AGENTS.md also says that a new package needs GitHub Actions added as its Trusted Publisher on npmjs.com before its first CI release, since CI cannot check that setting ahead of time.

Testing

  • actionlint .github/workflows/release.yml: exit 0.
  • Not run: the changed condition only fires on a real publish that partly fails, so it cannot be exercised on a PR.

No changeset: CI and docs only.

ELI5: when several packages are released together and one of them fails, the others still get their tidy release page on GitHub, and evlog still keeps the "Latest" badge.

@vercel

vercel Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
evi Ready Ready Preview Oct 17, 2026 3:13pm UTC
evlog-docs Ready Ready Preview, v0 Oct 17, 2026 3:13pm UTC
evlog-render-lab Ready Ready Preview Oct 17, 2026 3:13pm UTC
evlog-telemetry Ready Ready Preview Oct 17, 2026 3:13pm UTC
just-use-evlog Ready Ready Preview Oct 17, 2026 3:13pm UTC

Request Review

@github-actions github-actions Bot added the ci label Oct 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for following the naming conventions! 🙏

@pkg-pr-new

pkg-pr-new Bot commented Oct 17, 2026

Copy link
Copy Markdown
@evlog/cli

npm i https://pkg.pr.new/@evlog/cli@901

evlog

npm i https://pkg.pr.new/evlog@901

@evlog/nuxthub

npm i https://pkg.pr.new/@evlog/nuxthub@901

@evlog/signals

npm i https://pkg.pr.new/@evlog/signals@901

@evlog/telemetry

npm i https://pkg.pr.new/@evlog/telemetry@901

commit: 8523260

@HugoRCD
HugoRCD merged commit 5bc6290 into main Oct 17, 2026
19 of 21 checks passed
@HugoRCD
HugoRCD deleted the ci/release-notes-partial-publish branch October 17, 2026 15:13
@coderabbitai

coderabbitai Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7a3185f7-5082-43ea-a40d-4cfa9cea2d00
📥 Commits

Reviewing files that changed from the base of the PR and between 0f50684 and 8523260.

📒 Files selected for processing: 2
  • .github/workflows/release.yml
  • AGENTS.md
+--------------+
| Bugs begone! |
+--------------+
  \
   \     /)/)
        ( '')
        /  |
      o(___)
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch was successfully deployed

5 active deployments
Preview – evlog-telemetry — 8523260a Deployed Oct 17, 2026 by vercel[bot]
Preview – evi — 8523260a Deployed Oct 17, 2026 by vercel[bot]
Preview – evlog-docs — 8523260a Deployed Oct 17, 2026 by vercel[bot]
Preview – just-use-evlog — 8523260a Deployed Oct 17, 2026 by vercel[bot]
Preview – evlog-render-lab — 8523260a Deployed Oct 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant