Move CI, the image and the Node types to 26 together

Three pins and a types package all described Node 22, and moving any one
of them alone puts the build somewhere the others are not: @types/node
on its own would typecheck against APIs the runtime does not have, and
the base image on its own would ship a major CI never exercised. So
ci.yml, publish.yml, release.yml, both Dockerfile stages and
@types/node move in one change.

Worth knowing before this is deployed: 26 is Current, not LTS. node:26-
alpine reports lts=none, where 24-alpine is Krypton and the 22-alpine we
are leaving is Jod. 26 is due to become Active LTS in October. Nothing
here needs 26 over 24 -- the pins are a single number if the LTS line is
preferred.

engines stays at >=20.19, which is the floor for running ihasmail rather
than the version we build it on; the README's recommendation follows CI
to 26.

Checked on the runtime, not just in CI: the image builds on 26-alpine,
starts, and answers /api/health, and the login, SSE and body-carrying
POST checks from the node-server upgrade pass against a server on
26.8.1.
This commit is contained in:
2026-09-10 08:44:55 -07:00
parent 7d9d5b005c
commit 6632231815
7 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -82,7 +82,7 @@ jobs:
fetch-depth: 0
- uses: actions/setup-node@v7
with:
node-version: 22
node-version: 26
- id: v
run: |
V="$(node scripts/version.mjs)"