Skip to content

ci(node): bump Node runtime from 22 to 24 - #2354

Merged
DeliciousBuding merged 1 commit into
masterfrom
chore/node-24-bump
Sep 8, 2026
Merged

ci(node): bump Node runtime from 22 to 24#2354
DeliciousBuding merged 1 commit into
masterfrom
chore/node-24-bump

Conversation

@DeliciousBuding

Copy link
Copy Markdown
Collaborator

摘要

把 Node 运行时从 22 升到 24:三个 workflow 的 NODE_VERSION、web 镜像的 builder 基础镜像、README 与 developer-quickstart 的本地要求一起升,并给 app/package.jsonengines.node 下界,避免本机 / CI / 镜像三个消费者各说一套。

仓库既有的 scripts/verify/verify-action-runtimes.py 本来就按 node24 allow-list 校验 action 运行时(失败信息即 "not on the node24 allow-list"),这次让实际构建/测试运行时与该门禁对齐。

改动

  • .github/workflows/checks.ymlrelease.ymlrelease-readiness.ymlNODE_VERSION: "22""24"
  • app/Dockerfile:builder 阶段 node:22-alpinenode:24-alpine
  • app/package.json:新增 engines.node: ">=24"(advisory;.npmrc 未开 engine-strict
  • README.mddocs/developer-quickstart.md:本地要求 Node 22+ → 24+

验收证据(本机 Node v24.14.0 + pnpm 10.32.1,Windows)

  • pnpm install --frozen-lockfile:lockfile up to date,resolution skipped
  • pnpm -r typecheck:shared / workbench / web / desktop / mobile-rn 全过
  • docker build -f app/Dockerfile app:成功,镜像 83.8MB;node:24-alpine 内 corepack 0.35.0 存在,corepack enable && corepack prepare pnpm@10 --activate 正常
  • desktop 按 CI 原样(working-directory: app/desktop)跑:vitest.desktop-ts-ci.config.ts 32 files / 371 tests 全过,vitest.desktop-tsx-ci.config.ts 23 files / 136 tests 全过
  • verify-action-runtimes.py / verify-ci-gates.py / verify-doc-ssot.py / verify-conventions.py 全 PASS

未跑项

  • 完整 CI(windows-frontend、e2e、Go 侧 job)由本 PR 门禁执行
  • 未在 arm64 上本地构建镜像;arm64 leg 由 CD 矩阵覆盖

合并影响

app/Dockerfileapp/package.json 都在 cd-web.yml 的 master push 路径过滤内,合并后会构建并推送新的 web 镜像(sha-<sha>-{amd64,arm64} 与 multi-arch manifest tag)。镜像发布不等于部署,替换运行实例仍走各自的部署流程。

顺带发现(不在本 PR 修)

  • pnpm testapp/vitest.config.ts)在 master 上失败:desktop/src/hooks/executionIntent.test.tsresolve(process.cwd(), '../../tests/fixtures/dispatch/execution-intent.json'),从 app/ 执行会解析到仓库外;CI 因 working-directory: app/desktop 不受影响。建议改为相对测试文件解析。
  • checks.yml 中 desktop lint 步骤的注释称 desktop "0 errors but 4 warnings",实测 eslint src 为 5 个 no-explicit-any error + 4 warning,而该步是 continue-on-error: true:注释已过期,且这个 advisory 门禁正在放行真实 error。

把三处 workflow 的 NODE_VERSION、web 镜像 builder 基础镜像和本地要求一起升到
Node 24,并给 app/package.json 补 engines.node 下界,避免本机 / CI / 镜像三个
消费者各说一套。仓库既有的 verify-action-runtimes.py 本来就按 node24 allow-list
校验 action 运行时,这次让实际运行时与它对齐。

验证(本机 Node v24.14.0 + pnpm 10.32.1):
- pnpm install --frozen-lockfile:lockfile up to date
- pnpm -r typecheck:shared / workbench / web / desktop / mobile-rn 全过
- docker build -f app/Dockerfile(node:24-alpine,corepack 0.35.0)成功,镜像 83.8MB
- app/desktop 按 CI 原样跑 vitest.desktop-ts-ci.config.ts:32 files / 371 tests 全过
- verify-action-runtimes / verify-ci-gates / verify-doc-ssot / verify-conventions 全 PASS

未跑:完整 CI(windows-frontend、e2e、Go 侧 job)与镜像推送,留给 PR 门禁。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 4c3d21c7-4d5c-48c6-b1da-3f83240cdaf4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DeliciousBuding
DeliciousBuding merged commit d5cde8b into master Sep 8, 2026
55 checks passed
@DeliciousBuding
DeliciousBuding deleted the chore/node-24-bump branch September 8, 2026 05:28
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