Skip to content

chore(ci): drop end-of-life Node versions from the test matrix - #160

Merged
cawalch merged 1 commit into
mainfrom
chore/drop-eol-node-matrix
Nov 1, 2026
Merged

cawalch merged 1 commit into
mainfrom
chore/drop-eol-node-matrix

Conversation

@cawalch

@cawalch cawalch commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

Test the supported Node.js lines, keep lint in the pipeline, and move the coverage upload to a job that still exists.

• Replace the Node 20.x and 23.x jobs with 22.x, 24.x, and 26.x. Node 20 reached end-of-life in April 2026, 23.x is also EOL, and vitest@4 does not list 23.x as supported.
• Upload the coverage artifact from the 24.x job. The old matrix.node-version == '20.x' condition would silently stop uploading once that job is removed (if-no-files-found: error never triggers because the step is skipped).
• Run npm run lint:ci before the tests. The Biome 2.6.3 upgrade in #151 broke the linter on main and nothing noticed because CI did not run it.
• Move .nvmrc from 22.11.0 to 24.22.2. 22.11.0 predates @vitest/coverage-v8's >=22.12 engine floor, so a new contributor following .nvmrc got an engine warning.

engines.node intentionally stays at >=20.19.0. At least six public dependents declare a floor of 18 or 20 (including Mockoon), and raising the published floor is a consumer-facing change that belongs in a major release, not a CI chore.

Verification

  • npm run lint:ci, npm run build, and npm test (1,380 tests) pass locally on Node 26.13.0.
  • The new matrix exercises 22.x, 24.x, and 26.x on this pull request; coverage upload runs on 24.x only.
  • gh actions-lock --verify still passes; no workflow pins changed.

Test the supported LTS lines and keep lint in the pipeline.

• Replace the Node 20.x and 23.x jobs with 22.x, 24.x and 26.x: Node 20 reached end-of-life in April 2026, 23.x is EOL, and vitest 4 does not support 23.x.
• Upload coverage from the 24.x job; the previous 20.x condition would silently stop uploading once that job is removed.
• Run `npm run lint:ci` before the tests so formatting regressions fail CI; the Biome 2.6.3 upgrade broke the script without any check noticing.
• Move `.nvmrc` to 24.22.2, the current Active LTS, which also satisfies vitest's >=22.12 requirement.

`engines.node` stays at `>=20.19.0`; raising the published floor is a consumer-facing change and belongs in a major release.
@cawalch
cawalch merged commit 843a495 into main Nov 1, 2026
9 checks passed
@cawalch
cawalch deleted the chore/drop-eol-node-matrix branch November 1, 2026 16:29
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