Build the frontend on Node 24 #2

Merged
justinzeus merged 1 commit from chore/1-node-24 into main 2026-10-26 16:38:49 +01:00
Owner

Goal

The frontend build stage and CI run on Node 24 LTS instead of Node 20, which reached end of life on 2026-04-30 (tank-wide move in justinzeus/server-docs#50). Closes justinzeus/handin-website#1.

Change

  • Dockerfile frontend-builder: node:20-alpine becomes node:24-alpine.
  • .github/workflows/ci.yml frontend-quality: node-version: "20" becomes "24".
  • ref/ is a vendored snapshot that is not built, so it is untouched.

Verification

  • On tank, docker build --target prod . succeeded (npm ci + npm run build on node:24-alpine).
  • A container from that image served GET /api/health with {"status":"ok"} and GET / with 200 and the built index.html. static/ held assets/, favicon.png and index.html.

Risk

Low: build-time only, and the runtime image stays python:3.12-slim. Merging to main triggers the Komodo handin build and deploy, so the merge is the deploy.

## Goal The frontend build stage and CI run on Node 24 LTS instead of Node 20, which reached end of life on 2026-04-30 (tank-wide move in justinzeus/server-docs#50). Closes justinzeus/handin-website#1. ## Change - `Dockerfile` `frontend-builder`: `node:20-alpine` becomes `node:24-alpine`. - `.github/workflows/ci.yml` `frontend-quality`: `node-version: "20"` becomes `"24"`. - `ref/` is a vendored snapshot that is not built, so it is untouched. ## Verification - On tank, `docker build --target prod .` succeeded (`npm ci` + `npm run build` on node:24-alpine). - A container from that image served `GET /api/health` with `{"status":"ok"}` and `GET /` with 200 and the built `index.html`. `static/` held `assets/`, `favicon.png` and `index.html`. ## Risk Low: build-time only, and the runtime image stays python:3.12-slim. Merging to main triggers the Komodo `handin` build and deploy, so the merge is the deploy.
justinzeus added 1 commit 2026-09-30 18:06:29 +02:00
Build the frontend on Node 24
Some checks failed
CI / repo-hygiene (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / frontend-quality (pull_request) Has been cancelled
CI / docker-publish (pull_request) Has been cancelled
review/pr-sweep docker build --target prod green on node:24-alpine; container served /api/health ok and / 200 with built static; stale CI statuses are separ
acf0e8cfc9
justinzeus force-pushed chore/1-node-24 from acf0e8cfc9 to a71caad42e 2026-10-26 16:34:36 +01:00 Compare
justinzeus merged commit 2584f199f9 into main 2026-10-26 16:38:49 +01:00
Sign in to join this conversation.
No description provided.