Skip to content

Update the action runtime from node20 to node24 - #1928

Merged
marekdedic merged 2 commits into
masterfrom
node24-runtime
Aug 30, 2026
Merged

Update the action runtime from node20 to node24#1928
marekdedic merged 2 commits into
masterfrom
node24-runtime

Conversation

@marekdedic

Copy link
Copy Markdown
Contributor

Fixes #1926.

Node 20 reached end-of-life on 2026-04-30, so the action was pinned to an unsupported runtime. This bumps the declared runtime and aligns everything that follows from it, so the runtime version is stated in one place and the build and CI follow it.

  • action.ymlruns.using: "node20""node24"
  • .github/workflows/CI.ymlnode-version: 2224, so CI builds and tests on the runtime the action actually executes on
  • vite.config.ts — set build.target: "node24" explicitly, instead of inheriting Vite 8's baseline-widely-available browser baseline (a browser constraint on a Node-only action, which would drift on every Vite major)
  • tsconfig.jsontarget: "es2022""es2023"; Node 24 supports ES2023 in full, and lib is unset so it follows target

Verified locally: npm run lint (eslint + tsc --noEmit) clean, 89/89 tests pass, node --check dist/index.js parses. The rebuilt bundle is byte-identical to the committed one, so dist/ is unchanged.

Node 20 reached end-of-life on 2026-04-30. Bump the declared runtime and
align everything that follows from it:

- action.yml: runs.using node20 -> node24
- CI.yml: node-version 22 -> 24, so CI tests the runtime we ship on
- vite.config.ts: set build.target explicitly instead of inheriting
  Vite's browser baseline
- tsconfig.json: target es2022 -> es2023

Fixes #1926
@codecov

codecov Bot commented Aug 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (bc0a56f) to head (1a68577).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##            master     #1928   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           19        19           
  Lines          218       218           
  Branches        57        57           
=========================================
  Hits           218       218           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Add engines.node >=24 so contributors on an older Node get a warning at
install time rather than a confusing CI failure, and pin @types/node back
to ^24 so the types match the runtime we ship on instead of describing
APIs Node 24 does not have.
@marekdedic
marekdedic merged commit 6880a6b into master Aug 30, 2026
9 checks passed
@marekdedic
marekdedic deleted the node24-runtime branch August 30, 2026 13:49
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.

Update the action runtime from node20 to node24

1 participant