fix(ci): correct the protoc pin, and build the package in CI - #6
Conversation
protoc@35.1 does not exist for install-action: protobuf publishes both a v35.1 and a 3.35.1 for the same release, and the action indexes the latter. The release failed on it after the tag and GitHub release already existed, which costs a version each time. That it could only fail there is the actual problem. CI called wasm-pack and build:ts directly and skipped `gen`, so it never ran the build the package ships — the one place a codegen or tooling break shows up. CI now runs `bun run build` with the same pinned tools, so the next break of this kind fails on the pull request instead.
📝 WalkthroughWalkthroughThe CI workflow now installs ChangesCI workflow updates
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci.yml:
- Around line 86-90: Update the stale comments at the release workflow locations
around the relevant build steps to reflect that CI now runs `bun run build` via
the “Build the wasm package” step; remove references claiming CI directly
invokes `wasm-pack` and `build:ts` or skips `gen`, while preserving any
still-accurate release workflow guidance.
- Around line 86-90: Update the CI workflow’s Bun setup to use version 1.3.14
instead of latest, matching the version configured by the release workflow for
verification and publishing. Keep the existing build command unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 81d38d8b-1698-4ab4-a0fa-1b7ec290f319
📒 Files selected for processing (2)
.github/workflows/ci.yml.github/workflows/release.yml
There was a problem hiding this comment.
All reported issues were addressed across 2 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
CI runs the release's build now, but resolved its toolchain differently: bun floated on `latest` against a pinned 1.3.14, and install-action came from the moving `@v2` tag rather than the SHA the release uses — so the two could resolve different manifests for the same `protoc@3.35.1` and disagree about a build they are supposed to run identically. Both pinned to what release.yml uses, with the bun version in one env var so they cannot drift apart again silently. The release comments also still described CI as skipping `gen`, which stopped being true one commit ago.
|
All four applied in Bun floated while the release pinned (P2). The sharpest of the four. CI ran This reverses what I argued two rounds ago, when I kept install-action on the moving Stale comments in release.yml (coderabbit + cubic). Both said CI skips |
The
v0.6.2release failed at Install wasm-pack withprotoc@35.1 for 'linux' is not supported.protobuf publishes the same release under two version strings —
v35.1and3.35.1— andinstall-actionindexes the second. I pinned the first. Checked the action's manifest at the pinned SHA rather than guessing again: 173 versions, the newest being3.35.1.The part worth fixing is why it could only fail there
ci.ymlcalledwasm-pack buildandbun run build:tsdirectly, skippinggen. So CI never ran the build the package actually ships, and anything in that path — codegen, protoc, a generator plugin — surfaced for the first time during a release, after the tag and GitHub release already exist. That is the most expensive place to find it: each attempt burns a version number, because the workflow lives inside the tag and cannot be fixed retroactively.CI now runs
bun run build, with the same pinned tools as the release. The next break of this kind fails on the pull request.State, and what it costs
v0.6.1andv0.6.2both exist as tags and GitHub releases with nothing on npm —0.6.0is still latest. Neither can be rescued by dispatch: their workflows predate the fix they need.Simplest path is to let this land, take the
0.6.3release-please will propose, and delete the two orphan tags:Reusing
0.6.2would mean deleting its tag and hand-editing the manifest back so release-please proposes it again. Version numbers are cheap; that surgery is not.Note this PR gets the new CI treatment itself — the build job here runs
bun run build, so if the pin is still wrong it fails on this PR rather than on the next release.Summary by cubic
Pins
protocto3.35.1and makes CI run the exact release build with the same toolchain and action versions. This fixes the failed release and ensures codegen/tooling breaks fail on PRs, not during publish.protoc@35.1toprotoc@3.35.1, and applied the same pin in CI alongsidewasm-pack.bun run buildsogenruns and matches the release build.bun@1.3.14viaBUN_VERSION,taiki-e/install-action, andoven-sh/setup-bunto avoid drift.Written for commit 11a783b. Summary will update on new commits.
Summary by CodeRabbit