Set the Node version in one place

.nvmrc said 22, the CI workflow pinned 20, and the machine the browser
suite was actually developed and run on had 24. Three numbers, none of
them agreeing, which means "passes locally, fails in CI" had three
plausible explanations before anyone looked at the code.

.nvmrc is now the single source — CI reads it with node-version-file —
and it says 24, which is what the suite has been passing on.
package.json's engines floor stays at >=18: that is a genuine minimum
rather than a choice, and there is no reason to raise it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Paul LütznerandClaude Opus 5 committed 2026-07-31 15:45:26 +02:00
1 parent 9833695a27
commit 71d5474b5d
3 files changed
+8 -4

No files matched your search

+5 -1
View File
@@ -79,7 +79,11 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
# From .nvmrc rather than pinned here. The two drifted —
# .nvmrc said 22, this said 20, and the machine the suite was
# actually developed on ran 24 — so "works locally, fails in
# CI" had three plausible causes instead of none.
node-version-file: .nvmrc
cache: npm
- name: Install Node dependencies
+1 -1
View File
@@ -1 +1 @@
22
24
+2 -2
View File
@@ -74,8 +74,8 @@ Two suites: PHPUnit for unit tests (`tests/`, mirroring `src/`) and Playwright f
tests (`tests/e2e/`).
Both run against `compose.test.yaml` — a separate compose project with its own Postgres, so they never
touch the dev stack or the database holding your mail. Playwright runs on the host (Node 18+; the repo
ships an `.nvmrc`).
touch the dev stack or the database holding your mail. Playwright runs on the host; the repo
ships an `.nvmrc` and CI reads it, so that file is the one place the version is set.
```bash
npm ci