Skip to content

ci(tests): remove workspace dependency waits with bounded concurrency - #334

Merged
363045841 merged 2 commits into
mainfrom
codex/ci-package-test-scheduling
Oct 27, 2026
Merged

363045841 merged 2 commits into
mainfrom
codex/ci-package-test-scheduling

Conversation

@beiweimd

@beiweimd beiweimd commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

修复

pnpm -r test 会让 Vue 等待 core、agent-runtime 的测试依次完成,即使当前 CI job 已经构建了它们。这次新增 test:packages:ci:其他包通过 --no-sort 去掉测试等待链,限制为两个包并发、每包最多三个 Vitest worker;全部成功后再让 script-chart 独占 runner 完成测试。

script-chart 在 5s 的现有测试期限内执行完整内置脚本目录。让它与 core transform 或其他脚本执行争抢 CPU 会超时,因此单独保留资源阶段,而不是让所有包完全并行。

构建顺序、两个 Node 版本的全量测试、各包 Vitest 配置、文件隔离和超时均保持原样;同步更新 CI 门禁文档和复现方法。本地原有 test:packages 命令保留。

验证

  • 发布包构建,以及 React、Angular 构建通过。
  • pnpm type-check(源码与测试)通过;提交前 pnpm exec biome check package.json、git diff --check 通过。
  • 基线与正式 pnpm test:packages:ci 均完整通过:9 个包、329 个测试文件、3509 passed / 15 skipped / 1 todo;逐包文件数与测试数一致。
  • 正式命令在本地四逻辑 CPU、Windows、Node 22.23.4、pnpm 12.15.0、TZ=Asia/Shanghai 下全量通过,111.68s,其中独占的 script-chart 为 9.96s。远端收益以 package-test step 的实际耗时为准。

远端 本次 CI 四个 job 全部通过;两个 Node 版本的源码类型、测试类型、包测试和 attw 必需门禁均成功。与同一基准提交 8f1ddddb 的 main CI 对比,仅统计 Run package tests step:

Node main 本 PR 本轮减少
22.23.2 151s 91s 39.7%
24.21.0 129s 95s 26.4%

这是两次 runner 执行的实测对照,不包含排队与其他步骤,也不代表每轮都能达到相同降幅。

并发预算经过实测选择:两包 × 两 worker 耗时 125.37s;更高并发的候选会触发超时。最终并行阶段上限六个文件 worker,另有 Vitest host 进程;最后的 script-chart 上限三个 worker。没有放宽超时、减少测试、关闭隔离或增加 CI job。

Closes #326

@363045841
363045841 merged commit 199118b into main Oct 27, 2026
4 checks passed
@363045841
363045841 deleted the codex/ci-package-test-scheduling branch October 27, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci: pnpm -r test 按依赖图串行成为关键路径,测试墙钟被拉长

2 participants