chore: upgrade Node.js 20 actions to v24#65
Conversation
|
Warning Review limit reached
More reviews will be available in 36 minutes and 39 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe GitHub Actions deployment workflow updates its Node.js runtime from version 20 to version 24 on line 27 of the deploy workflow file. This change affects the build environment for all subsequent install, build, verify, and deployment steps executed during the workflow run. ChangesNode.js Version Update
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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: 1
🧹 Nitpick comments (1)
.github/workflows/deploy-website.yml (1)
27-27: ⚡ Quick winConsider using
.nvmrcfile for Node.js version management.According to the repo's Playwright configuration knowledge, the convention is to keep
.nvmrcversioned to keep local and CI environments aligned. Instead of hardcodingnode-version: 24, consider using:node-version-file: '.nvmrc'This approach ensures consistency between local development (using nvm or similar tools) and CI environments, preventing "works on my machine" issues.
As per coding guidelines: "Keep
.nvmrcand dependency versions versioned to keep local/CI aligned."🤖 Prompt for 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. In @.github/workflows/deploy-website.yml at line 27, Change the hardcoded Node version in the GitHub Actions workflow by replacing the "node-version: 24" setting with the workflow key that reads the project's .nvmrc file (use "node-version-file: '.nvmrc'") so CI uses the same Node runtime as local dev; update the job step where "node-version" is defined to use "node-version-file" instead and ensure .nvmrc is present and committed to the repo.
🤖 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/deploy-website.yml:
- Line 27: The workflow change only sets node-version: 24 for the build steps
but leaves pinned actions (actions/checkout@v4, actions/setup-node@v4,
cloudflare/wrangler-action@v3) running on Node 20; update those action pins to
Node-24-compatible releases (e.g., actions/checkout@v6+, actions/setup-node@v6+,
cloudflare/wrangler-action@v4+) or, as a temporary workaround, add env: {
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true } at the workflow or job level so the
JavaScript actions run under Node 24.
---
Nitpick comments:
In @.github/workflows/deploy-website.yml:
- Line 27: Change the hardcoded Node version in the GitHub Actions workflow by
replacing the "node-version: 24" setting with the workflow key that reads the
project's .nvmrc file (use "node-version-file: '.nvmrc'") so CI uses the same
Node runtime as local dev; update the job step where "node-version" is defined
to use "node-version-file" instead and ensure .nvmrc is present and committed to
the repo.
🪄 Autofix (Beta)
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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3ae316a5-10a0-4768-a4d4-2b3d90bba4a6
📒 Files selected for processing (1)
.github/workflows/deploy-website.yml
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| node-version: 24 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for .nvmrc file convention
echo "=== Checking for .nvmrc file ==="
if [ -f .nvmrc ]; then
echo "Found .nvmrc with version:"
cat .nvmrc
else
echo "No .nvmrc file found"
fi
# Search for other workflows to check consistency
echo -e "\n=== Checking node-version usage across workflows ==="
rg -n 'node-version:' .github/workflows/ || echo "No other node-version found"
rg -n 'node-version-file:' .github/workflows/ || echo "No node-version-file found"Repository: ajianaz/uteke
Length of output: 259
🌐 Web query:
Do actions/checkout@v4, actions/setup-node@v4 support Node.js 24 runtime?
💡 Result:
No, actions/checkout@v4 and actions/setup-node@v4 do not support the Node.js 24 runtime; they were built using the Node.js 20 runtime [1][2][3]. To use Node.js 24, you must migrate to the newer versions of these actions, specifically actions/checkout@v6 and actions/setup-node@v6 (or later), which have been updated to the Node.js 24 runtime [4][5][6]. Key points regarding this requirement: - Version Compatibility: The newer v6 actions require your GitHub Actions runner to be on version v2.327.1 or later to function correctly with the Node.js 24 runtime [4][5][6]. - Official Guidance: GitHub has deprecated Node.js 20-based actions, with requirements transitioning toward mandatory Node.js 24 support for actions [1]. - Configuration: You can specify Node.js 24 in your workflow using actions/setup-node@v6 as follows [5][6]: - uses: actions/setup-node@v6 with: node-version: '24'
Citations:
- 1: Update GitHub actions to use Node v24 cisagov/ScubaGear#2045
- 2: https://stackoverflow.com/questions/77992218/github-actions-failing-after-upgrading-to-node-v20
- 3: https://github.com/actions/setup-node/tree/72476173717e9fa92b08abe87e9c9dc3a42dc0c8
- 4: https://github.com/actions/checkout
- 5: https://github.com/actions/setup-node
- 6: https://github.com/marketplace/actions/setup-node-js-environment
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '1,120p' .github/workflows/deploy-website.yml | nl -ba | sed -n '1,120p'Repository: ajianaz/uteke
Length of output: 100
🏁 Script executed:
#!/bin/bash
set -euo pipefail
cat -n .github/workflows/deploy-website.yml | sed -n '1,120p'Repository: ajianaz/uteke
Length of output: 2140
🌐 Web query:
Is FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true a supported GitHub Actions workaround for Node 20 deprecation warnings? What does it do and where should it be set?
💡 Result:
Yes, FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true is a supported, official GitHub Actions environment variable designed to help users test and opt into the Node.js 24 runtime ahead of the platform's default migration [1][2]. What it does: This setting forces GitHub Actions runners to execute JavaScript-based actions using the Node.js 24 runtime, even if the action is explicitly configured to use Node.js 20 [1][3]. It serves as a temporary mitigation for users who cannot immediately update to action versions that natively support Node.js 24, allowing workflows to remain functional as GitHub transitions away from Node.js 20 [4][3]. Note: While this setting effectively changes the runtime, some users have reported that the end-of-job deprecation annotation may still fire for actions that declare node20 support, sometimes with a message indicating they are being forced to run on Node.js 24 [5]. Where to set it: You can set this variable in two primary ways: 1. Workflow level (Recommended): Add it to the env section of your YAML workflow file [1][4]. This provides job-specific control and overrides any runner-level settings [1]. env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true 2. Runner level: Set it as a system environment variable on the self-hosted runner machine [1][2]. As a best practice, this should be treated as a temporary workaround. The long-term solution is to update your workflow to use newer versions of actions that have officially migrated to Node.js 24 [4].
Citations:
- 1: Node 20 -> Node 24 migration feature flagging, opt-in and opt-out environment variables actions/runner#3948
- 2: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
- 3: ci(workflows): opt in to FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 for still-node20 actions kent8192/reinhardt-web#4126
- 4: https://blog.path-finder.jp/troubleshooting/how-to-fix-nodejs-20-actions-are-deprecated-please/
- 5: Node 20 deprecation warning fires even when FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 forces the action to run on Node 24 actions/runner#4295
🌐 Web query:
Do Infisical/secrets-action@v1.0.9 and cloudflare/wrangler-action@v3 support the Node.js 24 runtime / are they Node 20 based?
💡 Result:
Infisical/secrets-action@v1.0.9: No explicit evidence found (in sources retrieved) that it is based on Node 20 vs Node 24; the action’s docs/metadata in the retrieved material didn’t state the runner Node version or any Node “engine”/“runs.using” value for v1.0.9. So I can’t confirm Node 24 support from the evidence gathered. cloudflare/wrangler-action@v3: Yes—its action definition uses the GitHub Actions runner “node20” runtime (not Node 24), meaning it is Node 20 based as written in action.yml (runs.using: "node20"). [1] So, based on the retrieved authoritative metadata: wrangler-action@v3 is Node 20 based, not Node 24 based; Infisical/secrets-action@v1.0.9’s Node 24/Node 20 basis could not be confirmed from the evidence retrieved. Note: There’s also an open GitHub issue claiming wrangler-action@v3 may be forced to run with Node 24 by default on GitHub runners starting a future date, but that’s not the same as the action declaring/supporting Node 24 itself. [2]
Citations:
- 1: https://github.com/cloudflare/wrangler-action/blob/main/action.yml
- 2: Node.js 20 actions are deprecated cloudflare/wrangler-action#413
🌐 Web query:
cloudflare/wrangler-action what version(s) use Node.js 24 (runs.using) vs node20? (e.g., v3 vs v4/v5)
💡 Result:
cloudflare/wrangler-action Node.js runtime mapping (runs.using): 1) wrangler-action@v3 - Uses Node.js 20 for the GitHub Actions JavaScript runner (action.yml shows runs.using: "node20" on the v3 line) [1]. - Around v3 timeframe, the project explicitly discussed that v3 actions were running on Node.js 20 and would be forced to run on Node.js 24 by GitHub starting June 2, 2026 unless/ until updated versions were used [2]. 2) wrangler-action@v3 versions when the repo is updated for Node 24 - PR #415 states “Upgrade action runtime: node20 → node24” and indicates action.yml was updated accordingly (so newer builds of the v3 tag/digest after that change will use node24) [3][4]. 3) wrangler-action@v4 (v4.0.0 and later) - Uses Node.js 24 for the action runner (the v4.0.0 release is after the Node 24 upgrade work, with PR #415 introducing the node20 → node24 change and v4.0.0 describing the default Wrangler v4 bump) [5][3]. So, the practical answer to “what version(s) use Node.js 24 (runs.using) vs node20?” - If you pin cloudflare/wrangler-action@v3 and you’re on an older v3 revision, it uses runs.using: node20 [1]. - After the Node 24 upgrade in the repo, v3 may move to runs.using: node24 (per PR #415) [3][4]. - v4.0.0+ uses runs.using: node24 [5][3]. Note: this is about the GitHub Action runner runtime for the action itself (action.yml “runs.using”), not your Worker’s Node runtime.
Citations:
- 1: https://github.com/cloudflare/wrangler-action/blob/main/action.yml
- 2: Node.js 20 actions are deprecated cloudflare/wrangler-action#413
- 3: Default to Wrangler v4 and upgrade to Node.js 24 cloudflare/wrangler-action#415
- 4: Upgrade Node.js runtime to v24 cloudflare/wrangler-action#410
- 5: https://github.com/cloudflare/wrangler-action/releases/tag/v4.0.0
Fix: updating node-version to 24 won’t address Node 20 deprecation warnings from the pinned actions
.github/workflows/deploy-website.ymlsetsnode-version: 24foractions/setup-node@v4, but that only changes the Node version used by your build steps—not the Node runtime used internally by JavaScript-based actions.- This workflow still pins Node-20-based actions:
actions/checkout@v4,actions/setup-node@v4, andcloudflare/wrangler-action@v3(all run withnode20), so the deprecation warnings in issue#41won’t be resolved by this change alone. - There is no
.nvmrcin the repo, so the version is hardcoded in the workflow.
To actually mitigate/solve the warnings, either:
- Upgrade to Node 24-capable action versions (e.g.,
actions/checkout@v6+,actions/setup-node@v6+, andcloudflare/wrangler-action@v4+), or - Add
env: { FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true }at the workflow/job level as a temporary workaround.
🤖 Prompt for 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.
In @.github/workflows/deploy-website.yml at line 27, The workflow change only
sets node-version: 24 for the build steps but leaves pinned actions
(actions/checkout@v4, actions/setup-node@v4, cloudflare/wrangler-action@v3)
running on Node 20; update those action pins to Node-24-compatible releases
(e.g., actions/checkout@v6+, actions/setup-node@v6+,
cloudflare/wrangler-action@v4+) or, as a temporary workaround, add env: {
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true } at the workflow or job level so the
JavaScript actions run under Node 24.
6fff457 to
6701f49
Compare
Closes #41