Skip to content

fix(ci): keep the release train on GitHub-hosted runners - #181

Merged
jamesyong-42 merged 1 commit into
mainfrom
fix/release-runners-github-hosted
Jul 28, 2026
Merged

fix(ci): keep the release train on GitHub-hosted runners#181
jamesyong-42 merged 1 commit into
mainfrom
fix/release-runners-github-hosted

Conversation

@jamesyong-42

@jamesyong-42 jamesyong-42 commented Jul 28, 2026

Copy link
Copy Markdown
Member

What happened to truffle-v0.7.10

The Blacksmith migration (#178) blanket-moved every ubuntu-latest job — including the publishing workflows. npm refuses to mint sigstore provenance from self-hosted-class runners:

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

Sequence: all five sidecar binaries and all five NAPI targets built and uploaded fine (checksums pinned in f9f2c89), then both npm publish jobs died on the first platform package, and release-please stopped at its "require successful builds" gate — so crates.io and npm main publishes were never dispatched, the release was never un-drafted, and no v0.7.10 SemVer tag was minted.

Blast radius: zero. Verified: truffle-v0.7.10 is still a draft, npm shows nothing past 0.7.9 for any package, crates.io max version is 0.7.9. Nothing partial escaped to any registry.

The fix

Revert the six release-path workflows to ubuntu-latest (release-please, release-preflight, release-sidecar, napi-build, release-npm, publish-cratesrelease-cli escaped the migration, which is why CLI binaries succeeded) and pin the constraint in comments on each publish job so the next runner migration can't silently reintroduce it. CI/test/analysis workflows keep Blacksmith — the speed matters there and nothing in them mints provenance or uses trusted publishing.

Recovery path for the release

Recovering 0.7.10 in place isn't viable: the publish jobs are tag-gated, and a workflow_dispatch at truffle-v0.7.10 executes the tag's (broken) workflow definitions; rebuilding at a recovery ref would also produce sidecar bytes that no longer match the pinned checksums. Since nothing was published, the clean path is:

  1. Merge this — release-please will open the 0.7.11 PR off this fix(ci) commit.
  2. Normal release dance (manual Cargo.toml bumps on the release branch), merge, and 0.7.11 ships everything 0.7.10 contained (the reply-broker fix, protocol v4) end to end on fixed runners.
  3. Leave truffle-v0.7.10 as a dead draft and its tag in place — deleting the tag would make release-please try to re-cut 0.7.10; drafts are invisible to consumers.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

The Blacksmith migration (#178) blanket-moved every ubuntu-latest job,
including the four publishing workflows. npm rejects sigstore provenance
minted anywhere but GitHub-hosted runners, so the truffle-v0.7.10
release died at both npm publish steps ("Unsupported GitHub Actions
runner environment: self-hosted") after all binaries had built, and
release-please then stopped at its build gate — nothing reached npm or
crates.io, and the release is still a draft.

Revert the six release-path workflows (release-please, release-preflight,
release-sidecar, release-cli's siblings napi-build, release-npm,
publish-crates) to ubuntu-latest and pin the constraint in comments on
each publish job so the next runner migration can't silently reintroduce
it. CI/test workflows keep their Blacksmith runners — the speed matters
there and nothing in them mints provenance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jamesyong-42
jamesyong-42 merged commit bf476cf into main Jul 28, 2026
11 checks passed
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