Skip to content

ci: bump Node 20 → 24 (staging → main) - #240

Merged
joeunion merged 7 commits into
mainfrom
staging
Jul 31, 2026
Merged

ci: bump Node 20 → 24 (staging → main)#240
joeunion merged 7 commits into
mainfrom
staging

Conversation

@joeunion

@joeunion joeunion commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

CI-config-only promotion (single file: .github/workflows/e2e.yml). Bumps the 3 setup-node steps to Node 24 (GitHub deprecating Node 20 for actions) and busts the node_modules cache key. No app code, schema, or migrations — zero prod-runtime impact. Validated green on Node 24 on staging.

First promotion to exercise the newly-required unit/integration checks.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated automated unit, integration, and end-to-end testing workflows to use Node.js 24.
    • Refreshed caching and framework configuration to improve build consistency and efficiency.
    • Upgraded workflow tools supporting source retrieval, runtime setup, caching, and test reporting.
    • Improved the reliability of test artifact generation with updated reporting support.

joeunion and others added 2 commits July 31, 2026 10:52
GitHub is deprecating Node 20 for actions (setup-node/checkout/cache/upload
were being force-run on Node 24 with a warning). Bump the three setup-node
steps to Node 24, and bust the node_modules cache key (node20 → node24) so
native binaries aren't reused across the version change. Node 24 is Next 16's
supported/default runtime.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hop-aboard Building Building Jul 31, 2026 6:28pm
hop-aboard (staging) Ready Ready Preview Jul 31, 2026 6:28pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 94f8c840-6574-4e10-be69-a544c6bf9ec9

📥 Commits

Reviewing files that changed from the base of the PR and between eb641f5 and 43f995e.

📒 Files selected for processing (1)
  • .github/workflows/e2e.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/e2e.yml

Walkthrough

The E2E workflow updates its unit, integration, and E2E jobs to Node.js 24. It updates cache keys, disables checkout credential persistence, and upgrades checkout, cache, and artifact actions.

Changes

CI runtime and action update

Layer / File(s) Summary
Node.js 24 workflow configuration
.github/workflows/e2e.yml
The unit, integration, and E2E jobs now configure Node.js 24. Their dependency cache keys now use node24.
GitHub Actions version upgrades
.github/workflows/e2e.yml
The workflow upgrades checkout, cache, Playwright cache, Next.js cache, and test report upload actions. Checkout steps disable credential persistence.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • Forthbridge/WhiteLabelIntake#238: Both PRs modify .github/workflows/e2e.yml, but this PR updates actions and Node.js while that PR changes caching and job parallelization.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary change: upgrading CI from Node 20 to Node 24 and promoting the configuration from staging to main.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch staging

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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/e2e.yml:
- Line 41: Update the workflow action references in the e2e job to Node24-based
majors, including checkout@v5, setup-node@v5, cache@v5, and upload-artifact@v6,
rather than changing only the node-version value. Ensure any self-hosted runner
configuration requires runner version 2.327.1 or later.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 014e3f6d-a220-479b-811b-b27b943e1f00

📥 Commits

Reviewing files that changed from the base of the PR and between a85975a and 4ce2ff5.

📒 Files selected for processing (1)
  • .github/workflows/e2e.yml

Comment thread .github/workflows/e2e.yml
joeunion and others added 2 commits July 31, 2026 11:11
…load-artifact@v7)

The prior "Node 20 → 24" change only touched `node-version:` (the runtime the
test STEPS run under). But the GitHub deprecation warning is about the ACTION
runtimes — actions/checkout@v4, setup-node@v4, cache@v4, upload-artifact@v4 all
declare `using: node20`, which the runner force-runs on Node 24 with a warning.
(Caught by CodeRabbit review — correct.)

Fix the actual deprecation by bumping the actions to their lowest Node-24 major
(verified via each action.yml `using:` field):
- actions/checkout@v4  → @v5  (node24)
- actions/setup-node@v4 → @v5 (node24)
- actions/cache@v4     → @v5  (node24)
- actions/upload-artifact@v4 → @v7 (v5/v6 are still node20; v7 is node24)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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/e2e.yml:
- Line 17: Update all four actions/checkout@v5 steps in the workflow to set
persist-credentials to false, ensuring checkout does not retain the GITHUB_TOKEN
before repository-controlled npm, npx, or node commands run.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4173b17c-a95c-4204-a076-4310585caaab

📥 Commits

Reviewing files that changed from the base of the PR and between 4ce2ff5 and eb641f5.

📒 Files selected for processing (1)
  • .github/workflows/e2e.yml

Comment thread .github/workflows/e2e.yml
joeunion and others added 2 commits July 31, 2026 11:23
actions/checkout leaves the GITHUB_TOKEN in .git/config by default so later
steps can push. No job here pushes, so disable it to avoid exposing the token
to the repository-controlled steps (npm/npx/build) that run after checkout.
Pre-existing pattern flagged by CodeRabbit; safe since safety-check's git diff
is a local op that needs no credentials. (fetch-depth: 0 preserved.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ci: persist-credentials: false on checkout
@joeunion
joeunion merged commit 110e834 into main Jul 31, 2026
7 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