chore(ci)(deps): bump actions/setup-node from 4.4.0 to 6.4.0 - #4857
Conversation
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 6.4.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@49933ea...48b55a0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 6.4.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📣 Social Copy GeneratorGenerate social media copies (Twitter/X, LinkedIn, Blog Post) for this PR using Claude.
|
|
| Field | Value |
|---|---|
| Action | actions/setup-node |
| Previous | v4.4.0 |
| New | v6.4.0 |
| Type | Major (v4 → v6) |
Breaking Changes
- Breaking Changes
-
- Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes in v5 by @dependabot[bot] in #1336
-
Breaking Changes
Release Notes (v5 → v6)
v6.4.0
What's Changed
Dependency updates:
- Upgrade @actions dependencies by @Copilot in Upgrade @actions dependencies actions/setup-node#1525
- Update Node.js versions in versions.yml and bump package to v6.4.0 by @priya-kinthali in Update Node.js versions in versions.yml and bump package to v6.4.0 actions/setup-node#1533
New Contributors
- @Copilot made their first contribution in Upgrade @actions dependencies actions/setup-node#1525
Full Changelog: actions/setup-node@v6...v6.4.0
v6.3.0
What's Changed
Enhancements:
- Support parsing
devEnginesfield by @susnux in feat(node-version-file): support parsingdevEnginesfield actions/setup-node#1283
When using node-version-file: package.json, setup-node now prefers devEngines.runtime over engines.node.
Dependency updates:
- Fix npm audit issues by @gowridurgad in Fix npm audit issues actions/setup-node#1491
- Replace uuid with crypto.randomUUID() by @trivikr in Replace uuid with crypto.randomUUID() actions/setup-node#1378
- Upgrade minimatch from 3.1.2 to 3.1.5 by @dependabot in Bump minimatch from 3.1.2 to 3.1.5 actions/setup-node#1498
Bug fixes:
- Remove hardcoded bearer for mirror-url @marco-ippolito in fix: remove hardcoded bearer actions/setup-node#1467
- Scope test lockfiles by package manager and update cache tests by @gowridurgad in Scope test lockfiles by package manager and update cache tests actions/setup-node#1495
New Contributors
- @susnux made their first contribution in feat(node-version-file): support parsing
devEnginesfield actions/setup-node#1283
Full Changelog: actions/setup-node@v6...v6.3.0
v6.2.0
What's Changed
Documentation
- Documentation update related to absence of Lockfile by @mahabaleshwars in Update Documentation for Lockfile actions/setup-node#1454
- Correct mirror option typos by @MikeMcC399 in Correct mirror option typos actions/setup-node#1442
- Readme update on checkout version v6 by @deining in README.md: bump to latest released checkout version v6 actions/setup-node#1446
- Readme typo fixes @munyari in Fix README typo actions/setup-node#1226
- Advanced document update on checkout version v6 by @aparnajyothi-y in Docs: bump actions/checkout from v5 to v6 actions/setup-node#1468
Dependency updates:
- Upgrade @actions/cache to v5.0.1 by @salmanmkc in Bump @actions/cache to v5.0.1 actions/setup-node#1449
New Contributors
- @mahabaleshwars made their first contribution in Update Documentation for Lockfile actions/setup-node#1454
- @MikeMcC399 made their first contribution in Correct mirror option typos actions/setup-node#1442
- @deining made their first contribution in README.md: bump to latest released checkout version v6 actions/setup-node#1446
- @munyari made their first contribution in Fix README typo actions/setup-node#1226
Full Changelog: actions/setup-node@v6...v6.2.0
v6.1.0
What's Changed
Enhancement:
- Remove always-auth configuration handling by @priyagupta108 in Remove always-auth configuration handling from action actions/setup-node#1436
Dependency updates:
- Upgrade @actions/cache from 4.0.3 to 4.1.0 by @dependabot[bot] in Bump @actions/cache from 4.0.3 to 4.1.0 actions/setup-node#1384
- Upgrade actions/checkout from 5 to 6 by @dependabot[bot] in Bump actions/checkout from 5 to 6 actions/setup-node#1439
- Upgrade js-yaml from 3.14.1 to 3.14.2 by @dependabot[bot] in Bump js-yaml from 3.14.1 to 3.14.2 actions/setup-node#1435
Documentation update:
- Add example for restore-only cache in documentation by @aparnajyothi-y in Add example for restore-only cache in documentation actions/setup-node#1419
Full Changelog: actions/setup-node@v6...v6.1.0
v6.0.0
What's Changed
Breaking Changes
- Limit automatic caching to npm, update workflows and documentation by @priyagupta108 in Limit automatic caching to npm, update workflows and documentation actions/setup-node#1374
Dependency Upgrades
- Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes in v5 by @dependabot[bot] in #1336
- Upgrade prettier from 2.8.8 to 3.6.2 by @dependabot[bot] in #1334
- Upgrade actions/publish-action from 0.3.0 to 0.4.0 by @dependabot[bot] in #1362
Full Changelog: actions/setup-node@v5...v6.0.0
v5.0.0
What's Changed
Breaking Changes
- Enhance caching in setup-node with automatic package manager detection by @priya-kinthali in Enhance caching in setup-node with automatic package manager detection actions/setup-node#1348
This update, introduces automatic caching when a valid packageManager field is present in your package.json. This aims to improve workflow performance and make dependency management more seamless.
To disable this automatic caching, set package-manager-cache: false
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
package-manager-cache: false- Upgrade action to use node24 by @salmanmkc in Upgrade action to use node24 actions/setup-node#1325
Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes
Dependency Upgrades
- Upgrade @octokit/request-error and @actions/github by @dependabot[bot] in Bump @octokit/request-error and @actions/github actions/setup-node#1227
- Upgrade uuid from 9.0.1 to 11.1.0 by @dependabot[bot] in Bump uuid from 9.0.1 to 11.1.0 actions/setup-node#1273
- Upgrade undici from 5.28.5 to 5.29.0 by @dependabot[bot] in Bump undici from 5.28.5 to 5.29.0 actions/setup-node#1295
- Upgrade form-data to bring in fix for critical vulnerability by @gowridurgad in Bump form-data to bring in fix for critical vulnerability actions/setup-node#1332
- Upgrade actions/checkout from 4 to 5 by @dependabot[bot] in Bump actions/checkout from 4 to 5 actions/setup-node#1345
New Contributors
- @priya-kinthali made their first contribution in Enhance caching in setup-node with automatic package manager detection actions/setup-node#1348
- @salmanmkc made their first contribution in Upgrade action to use node24 actions/setup-node#1325
Full Changelog: actions/setup-node@v4...v5.0.0
Next Steps
- Review breaking changes above
- Check if workflow inputs/outputs changed
- Verify compatibility with your CI/CD configuration
Full changelog: https://github.com/actions/setup-node/releases
Generated automatically for Dependabot major version PRs.
…ABI mismatch (#4938) ## Summary Fixes a probabilistic CI failure in the `test / unit` matrix where Node 20.x and 22.x jobs would fail with `Module did not self-register` on `better-sqlite3`. ### Root cause `setup-node`'s built-in `cache: "pnpm"` uses a cache key of `node-cache-Linux-pnpm-{lockfileHash}` — **no Node.js version in the key**. All three matrix jobs (Node 20, 22, 24) share one cache entry. The failure is **probabilistic, not always-present**: - **Cold run (first after cache reset):** all three jobs install fresh and pass. Whichever job finishes first writes its ABI-specific `better-sqlite3` binary to the shared cache key. - **Warm run (all subsequent runs):** all three jobs restore from the same cache entry. Only the job whose Node version matches the cached binary passes. The other two fail. This explains the timing: failures started ~May 19 after the `setup-node` v4→v6 and `pnpm/action-setup` v4→v6 dependabot bumps (May 15, PRs #4857/#4858) reset the cold cache. The first warm run after that was broken for whichever two Node versions didn't win the write race. This is a [known upstream bug in setup-node](actions/setup-node#1171) (issue #1171, fix pending in PR #1172, not yet in any release). ### Fix Replace `cache: "pnpm"` in `setup-node` with a manual `actions/cache` step that scopes the key to the Node.js version: ``` key: ${{ runner.os }}-pnpm-store-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} ``` Each Node version now has its own isolated pnpm store cache entry. An ABI-137 binary cached by a Node 24 job can never be served to a Node 20 or 22 job. The step uses `$GITHUB_OUTPUT` (scoped step output) instead of `$GITHUB_ENV` per GitHub's security hardening guide. ## Test plan ### Local reproduction (primary evidence) `better-sqlite3` uses classic ABI (`NODE_MODULE_INIT`, not N-API), so its binaries are Node-version-specific. With a Node 24 binary in place, switching to Node 22 without reinstalling reproduces the exact CI failure: ``` # Binary compiled under Node 24 (ABI 137) — works fine: $ node --version && node -e "new (require('better-sqlite3'))(':memory:').prepare('SELECT 1').get()" v24.5.0 { '1': 1 } # Same binary, switched to Node 22 (ABI 127) without reinstalling — fails: $ node-22 -e "new (require('better-sqlite3'))(':memory:')" Error: The module was compiled against a different Node.js version using NODE_MODULE_VERSION 137. This version of Node.js requires NODE_MODULE_VERSION 127. Please try re-compiling or re-installing the module. ``` This is exactly what the shared cache was doing to Node 20/22 jobs: handing them a binary compiled for a different ABI. ### CI validation Two runs on this PR confirm the fix end-to-end: 1. **Cold-cache run** ([26185670340](https://github.com/CopilotKit/CopilotKit/actions/runs/26185670340)): all three jobs install fresh, each writes its own per-version cache entry, all pass. 2. **Warm-cache run** ([26187495270](https://github.com/CopilotKit/CopilotKit/actions/runs/26187495270)): each job restores from its own per-version cache entry — the exact scenario that was previously broken. All pass, with install times dropping from ~22s (cold, downloading) to 7–10s (warm, linking from store), confirming real cache hits were served. | Job | Result | Cache restore | Install | |-----|--------|--------------|---------| | unit (20.x) | ✅ pass | 12s (hit) | 8s | | unit (22.x) | ✅ pass | 12s (hit) | 7s | | unit (24.x) | ✅ pass | 14s (hit) | 10s |
…ABI mismatch The pnpm store cache key used by setup-node does not include the Node.js version, so a cache entry written by a Node 24 job contains an ABI-137 better-sqlite3 binary. When Node 20 (ABI 115) or Node 22 (ABI 127) jobs restore from the same cache key they get the wrong binary and all sqlite-runner tests fail with "Module did not self-register". Adding `pnpm rebuild better-sqlite3` after install re-runs prebuild-install for the active Node version, downloading the correct prebuilt binary and overwriting whatever ABI was in the restored cache. Root cause first appeared after the setup-node v4→v6 and pnpm/action-setup v4→v6 bumps (May 15, PRs CopilotKit#4857/CopilotKit#4858) reset the cold cache, allowing a Node 24 binary to poison the shared store entry.
Bumps actions/setup-node from 4.4.0 to 6.4.0.
Release notes
Sourced from actions/setup-node's releases.
... (truncated)
Commits
48b55a0Update Node.js versions in versions.yml and bump package to v6.4.0 (#1533)ab72c7eUpgrade@actionsdependencies (#1525)53b8394Bump minimatch from 3.1.2 to 3.1.5 (#1498)54045abScope test lockfiles by package manager and update cache tests (#1495)c882bffReplace uuid with crypto.randomUUID() (#1378)774c1d6feat(node-version-file): support parsingdevEnginesfield (#1283)efcb663fix: remove hardcoded bearer (#1467)d02c89dFix npm audit issues (#1491)6044e13Docs: bump actions/checkout from v5 to v6 (#1468)8e49463Fix README typo (#1226)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)