Skip to content

ci: run npm publish on self-hosted Mac minis - #14

Merged
joeblau merged 1 commit into
mainfrom
cursor/npm-publish-self-hosted-b899
Oct 18, 2026
Merged

joeblau merged 1 commit into
mainfrom
cursor/npm-publish-self-hosted-b899

Conversation

@joeblau

@joeblau joeblau commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

This loses npm trusted publishing and provenance. Official npm docs say trusted publishing supports GitHub-hosted runners only; self-hosted runners are not supported (Trusted publishing for npm packages). This PR still moves the last GitHub-hosted job onto the Mac minis, but it authenticates with a long-lived NPM_TOKEN instead of OIDC. Joe needs to add an NPM_TOKEN repository secret with publish rights for @bloxwap/font before the next release, and can reject this tradeoff if keeping trusted publishing on ubuntu-latest is preferred.

What changed

  • publish now uses runs-on: [self-hosted, macOS, ARM64] (same labels as the other jobs; runner group JWS).
  • Homebrew Python 3.13 via .github/scripts/macos-python313.sh again. actions/setup-python cannot install on these minis (/Users/runner is not writable).
  • Auth is NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}. id-token: write is removed because OIDC trusted publishing cannot work here.
  • check-publish-auth.mjs still runs on every release, including when the version is already published. It now checks the token (whoami + collaborator write access) and never prints it.
  • Pack dry-run, existing-version npm publish --dry-run --force, npm >=11.5.1, fonttools/brotli pins, and the skip-if-published gate are unchanged.

Docs

docs/ci-runners.md now says every job is on the minis, and that publish uses NPM_TOKEN without provenance.

Do not merge until Joe decides whether this token fallback is acceptable.

Open in Web Open in Cursor 

Move the remaining GitHub-hosted publish job onto the Mac mini runners.
npm trusted publishing does not support self-hosted runners, so authenticate
with an NPM_TOKEN secret and keep the existing pack, dry-run, and auth checks.

Co-authored-by: Joe Blau <[email protected]>
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.

2 participants