Skip to content

DEV-4505: Build gravitykit.dev on Node 24 and stop the Node 20 deprecation warnings - #26

Merged
zackkatz merged 1 commit into
mainfrom
feature/dev-4505-gravitykitdev-move-ci-to-node-24-before-github-drops-node-20
Nov 1, 2026
Merged

zackkatz merged 1 commit into
mainfrom
feature/dev-4505-gravitykitdev-move-ci-to-node-24-before-github-drops-node-20

Conversation

@zackkatz

@zackkatz zackkatz commented Nov 1, 2026

Copy link
Copy Markdown
Member

Every gravitykit.dev deploy warns that its actions run on Node 20, which GitHub has deprecated and now forces onto Node 24. This moves the build to Node 24 and each action to its Node 24 major, so the warnings stop and the deploy keeps working once Node 20 is removed.

Fixes DEV-4505

What changed and why

  • deploy.yml and token-interop.yml: node-version 20 to 24, actions/checkout v4 to v7, actions/setup-node v4 to v7.
  • deploy.yml: actions/upload-pages-artifact v3 to v5 and actions/deploy-pages v4 to v5. Since v4, the upload action leaves out dotfiles by default. The build output has none, so nothing is lost.
  • package.json: npm test now runs node --test scripts/lib/*.test.mjs. Node 22+ treats a bare folder after --test as a module path and fails with Cannot find module, which would have broken the token-interop workflow on Node 24. The shell expands the pattern, so it also works on Node 20.
  • AGENTS.md: the test command line matches.

Tested locally on Node 24.13.0 with PHP 8.3, the same steps CI runs:

  • npm ci, then npm test: 59/59 pass. Also 59/59 on Node 20.20.0.
  • npm run docs:generate, npm run llm:enhance, npm run build: build succeeds.
  • npm run tokens:verify: 245 of 245 records reproduce GravityView's CSS.

The token-interop workflow runs on this PR with the new actions.

Blast radius

  • Touches: none (CI config and the test command; no product hook, method or class)
  • Used by: none outside this repository
  • Customer code: none found
  • Docs: the deploy of gravitykit.dev; page content is unchanged
  • Risk: Contained

Release: none (docs-site CI; nothing ships to customers)

This was 🤖 Generated

GitHub deprecated the Node 20 runtime that checkout@v4, setup-node@v4,
upload-pages-artifact@v3 and deploy-pages@v4 use, and every deploy warned
about it. Build on Node 24 and move each action to its Node 24 major.

Node 22+ treats `node --test scripts/lib/` as a module path and fails, so
npm test now passes a file pattern that works on Node 20 and 24.

Fixes DEV-4505.
@linear-code

linear-code Bot commented Nov 1, 2026

Copy link
Copy Markdown

DEV-4505

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@zackkatz
zackkatz merged commit de7ee6e into main Nov 1, 2026
1 check passed
@zackkatz
zackkatz deleted the feature/dev-4505-gravitykitdev-move-ci-to-node-24-before-github-drops-node-20 branch November 1, 2026 02:14
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