Skip to content

fix(ci): pin smoketest Node to package.json devEngines version#174

Open
dormouse-bot wants to merge 1 commit into
mainfrom
fix/ci-smoketest-node-pin-28224208309
Open

fix(ci): pin smoketest Node to package.json devEngines version#174
dormouse-bot wants to merge 1 commit into
mainfrom
fix/ci-smoketest-node-pin-28224208309

Conversation

@dormouse-bot

Copy link
Copy Markdown
Collaborator

Problem

The Standalone Smoketest CI job started failing on every PR with:

failed to prepare bundled Node.js runtime: "bundled Node.js 22.23.0 does not match
the package.json devEngines.runtime.version pin 22.22.3. ..."

The smoketest runs cargo check in standalone/src-tauri, which executes build.rs. That script resolves Node via node -p process.execPath (the PATH node) and fails the build unless its version exactly equals package.json's devEngines.runtime.version pin (22.22.3).

The job set up Node with a bare node-version: 22, which tracks whatever 22.x the GitHub runner image happens to ship. The runner's 22.x line recently advanced from 22.22.3 to 22.23.0, so the exact-match check in build.rs began failing — even though the pin itself never changed. This is environmental drift, not a code regression, and it affects every PR and main push that runs the smoketest.

Fix

Drive setup-node from the pin instead of a bare major version, so the exact pinned Node is provisioned regardless of the runner default. This mirrors the existing build-standalone job in release.yml, which already reads devEngines.runtime.version via jq and feeds it to setup-node — and matches the contract build.rs documents ("CI reads the same field to drive actions/setup-node").

Only the standalone-smoketest job needs this: it is the one that runs cargo check directly. The build-and-test job runs everything through pnpm, where devEngines (onFail: "download") already provisions the pinned Node for scripts.

Testing

No unit test is feasible for a CI workflow change — the verification is the Standalone Smoketest check on this PR going green, which exercises the exact path that is currently red on other open PRs. With the pin-driven setup-node, the runner installs 22.22.3 and build.rs's version check passes.

This is intentionally not a pin bump (22.22.322.23.0): the disclosed runtime version is a supply-chain-controlled value that should advance through the maturity-window dependency path, not a CI convenience edit.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying mouseterm with  Cloudflare Pages  Cloudflare Pages

Latest commit: 4fb153f
Status: ✅  Deploy successful!
Preview URL: https://86304273.mouseterm.pages.dev
Branch Preview URL: https://fix-ci-smoketest-node-pin-28.mouseterm.pages.dev

View logs

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