chore(ci): node 20 отслужил — рантайм фронтов и оба CI-джоба на node 24 LTS #3214

Merged
lekss361 merged 1 commit from chore/node24-runtime into main 2026-08-29 11:29:13 +00:00

1 commit

Author SHA1 Message Date
bot-backend
4e8cf5ab62 chore(ci): node 20 отслужил — рантайм фронтов и оба CI-джоба на node 24 LTS
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Successful in 1m16s
CI Trade-In / frontend-checks (pull_request) Successful in 1m30s
CI / frontend-tests (pull_request) Successful in 1m23s
CI / openapi-codegen-check (pull_request) Successful in 2m23s
CI Trade-In / backend-tests (pull_request) Successful in 5m47s
CI / backend-tests (pull_request) Successful in 18m12s
Node 20 вышел из поддержки 30.04.2026: security-патчи для него больше не
выпускаются, а образ node:20-alpine продолжает собираться и молча уносить это
в прод. Node 24 — текущая Active LTS.

Меняется ровно major рантайма, больше ничего:
  frontend/Dockerfile             node:20-alpine → node:24-alpine (deps/builder/runner)
  tradein-mvp/frontend/Dockerfile то же, три стадии
  .forgejo/workflows/ci.yml       node-version "20" → "24" (два джоба)
  .forgejo/workflows/ci-tradein.yml то же (один джоб)

Версия в CI намеренно держится равной major'у из Dockerfile — так было и
раньше, комментарии рядом обновлены вместе с числом, чтобы не разошлись.

Ни `engines`, ни `.nvmrc` в проекте нет — других мест, где закреплён major,
не осталось (проверено grep'ом по Dockerfile/yml/md).

Совместимость: next 15.5.24 поддерживает node 20/22/24; sharp 0.35.4 — node
^18.17 || ^20.3 || >=22, prebuild linuxmusl-x64 есть.

Приёмка — этот самый CI: джобы фронтов теперь выполняются на node 24, так что
зелёный прогон PR и есть доказательство. Локально проверить нечем — на машине
node 26, это не тот major.
2026-08-29 14:02:55 +03:00