Skip to content

Publish from a GitHub-hosted runner, and say why - #17

Merged
pathscale merged 1 commit into
masterfrom
fix/publish-needs-github-hosted
Sep 2, 2026
Merged

Publish from a GitHub-hosted runner, and say why#17
pathscale merged 1 commit into
masterfrom
fix/publish-needs-github-hosted

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Unblocks the 0.2.2 release. My change in #16 broke it, and this is the revert plus the reason.

What happened

Moving the two publish jobs to Ubicloud looked like closing a gap — every other job in the repository is on Ubicloud, and nothing about downloading a tarball and running npm publish wants a particular runner. That reasoning was wrong.

npm signs a provenance statement on publish, and the registry refuses one signed anywhere it reads as self-hosted, which is what an Ubicloud runner is:

npm error 422 Unprocessable Entity - PUT https://registry.npmjs.org/solid-layouts
npm error Error verifying sigstore provenance bundle: Unsupported GitHub Actions runner
environment: "self-hosted". Only "github-hosted" runners are supported when publishing
with provenance.

It fails at the registry, not at the runner, so nothing before the PUT catches it. The release run decided correctly, packed a correct solid-layouts-0.2.2.tgz, signed it, and then died.

What this does

Both publish jobs move back to ubuntu-latest, each with the constraint written above it so the next reader does not close the same gap again. release-oxc publishes with provenance the same way, so it would have failed the same way on its next release — it just had not run yet.

Everything else stays on Ubicloud. release-oxc's build matrix keeps its separate, already-documented macos-14 exception.

After merging

Nothing was published, and the decider reads npm rather than the diff, so landing this re-runs the same release unchanged and solid-layouts@0.2.2 goes out. No version bump needed — 0.2.2 is already on master from #16.

Moving the publish jobs to Ubicloud looked like closing a gap: every other
job in the repository is on Ubicloud, and nothing about downloading a tarball
and running `npm publish` wants a particular runner. It is not that. npm signs
a provenance statement on publish, and the registry refuses one signed
anywhere it reads as self-hosted, which is what an Ubicloud runner is:

  npm error 422 Error verifying sigstore provenance bundle: Unsupported
  GitHub Actions runner environment: "self-hosted". Only "github-hosted"
  runners are supported when publishing with provenance.

It fails at the registry rather than at the runner, so nothing local catches
it: the release ran, decided, packed a correct 0.2.2 tarball, signed it, and
died on the PUT. Nothing was published, and because the decider reads npm
rather than the diff, landing this makes the same release go out unchanged.

Both publish jobs move back, each with the reason in place so the next reader
does not close the same gap again.
@pathscale
pathscale merged commit e23a691 into master Sep 2, 2026
5 checks passed
@pathscale
pathscale deleted the fix/publish-needs-github-hosted branch September 2, 2026 06:38
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