Skip to content

release: v2.3.3 (upgrade setup-node to v6 for OIDC) - #13

Merged
mangelsnc merged 1 commit into
mainfrom
release/2.3.3
Jun 16, 2026
Merged

mangelsnc merged 1 commit into
mainfrom
release/2.3.3

Conversation

@mangelsnc

Copy link
Copy Markdown
Owner

Third attempt at fixing the broken release pipeline. Previous attempts:

  • v2.3.1 failed: removed workflow_dispatch (correct), but setup-node@v4 + registry-url injects a placeholder NODE_AUTH_TOKEN that npm CLI picks up over OIDC. Got 404.
  • v2.3.2 failed: dropped registry-url to avoid the placeholder. But then npm CLI has no registry config at all and returns ENEEDAUTH.

Root cause

actions/setup-node@v4 and earlier exports NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX as a placeholder env var when you pass registry-url. The npm CLI uses that placeholder for auth and never falls back to OIDC.

actions/setup-node@v6 (Oct 2025) changed this behavior: it no longer injects the placeholder, so the npm CLI's documented OIDC-first auth path actually runs.

This matches the official npm Trusted Publishing example, which uses setup-node@v6 with registry-url set and package-manager-cache: false.

Changes

  • actions/setup-node@v4 → @v6 (only in release.yml; ci.yml keeps v4 since it does not publish).
  • Restore registry-url: https://registry.npmjs.org (safe again with v6).
  • Add package-manager-cache: false per npm's published guidance for release builds.

Cleanup

  • Tag 2.3.2 and the GitHub Release 2.3.2 have been deleted (no npm package existed, nothing to break).
  • [2.3.2] CHANGELOG entry folded into a new [2.3.3] entry documenting both fixes.

Release procedure once this lands

git checkout main && git pull
git tag 2.3.3
git push origin 2.3.3

Test plan

  • CI passes on this PR.
  • After merge, pushing tag 2.3.3 runs the workflow end to end.
  • npm view undisclosed@2.3.3 version returns 2.3.3.
  • npm view undisclosed dist-tags.latest returns 2.3.3.
  • Provenance attestation is visible on the npm package page.

Upgrade actions/setup-node from v4 to v6 in the release workflow.

setup-node v4 exports a placeholder NODE_AUTH_TOKEN env var to every
step when registry-url is set. The npm CLI picks up that placeholder
and uses it instead of falling back to OIDC, which is why v2.3.1 got
a misleading 404. v2.3.2 dropped registry-url to work around it, but
then the CLI cannot find any registry config and returns ENEEDAUTH.

setup-node v6 fixes the underlying issue: no placeholder token is
injected, the npm CLI prioritizes OIDC as documented, and Trusted
Publishing finally works. registry-url is restored;
package-manager-cache:false is set per npm's published guidance for
release builds.

No code changes vs v2.3.0/v2.3.1/v2.3.2; this is purely a
release-plumbing fix.
@mangelsnc
mangelsnc merged commit 8d85862 into main Jun 16, 2026
1 check passed
@mangelsnc
mangelsnc deleted the release/2.3.3 branch June 16, 2026 07:55
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