Prhub

#48219 [CI] split tests to reduce CI time

原始 PR 作者 ZJY0516 合并时间 2026-07-12 04:00 文件变更 2 提交数 2 评论 1 代码增减 +4 / -3

执行摘要

调整 CI 并行度减少测试时间

PR body 明确所述目的是 "Split tests to reduce CI time",即通过并行化测试执行来降低 CI 总耗时。

该 PR 为纯粹的 CI 性能优化,无代码逻辑变更,值得合并。建议关注合并后 CI 实际耗时变化,可为进一步优化提供参考。

讨论亮点

无实质 review 讨论。claude[bot] 自动评论表示由于是 fork 发起,禁用自动审查;khluu 直接批准。

实现拆解

  1. 修改 .buildkite/test_areas/models_multimodal.yaml

    • 为 "Multi-Modal Processor (CPU)" 任务增加 parallelism: 4 配置,使该任务在 4 个并行节点上分片运行。
    • 同时更新该任务的 commands,在 pytest 命令中添加 --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB 参数以支持分片。
    • 将任务标签追加 %N 后缀以区分并行实例。
  2. 修改 .buildkite/test_areas/models_basic.yaml

    • 将 "Basic Models Tests (Extra Initialization)" 任务的 parallelism 从 2 提升到 4。
    • 该步骤无需修改 commands,因为命令已使用 --num-shards--shard-id,仅需增加并行节点数。

不涉及任何 Python 源代码、测试用例或依赖变更。

文件 模块 状态 重要度
.buildkite/test_areas/models_multimodal.yaml CI 配置 modified 4.32
.buildkite/test_areas/models_basic.yaml CI 配置 modified 3.68

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅为 CI 配置调整,不涉及任何业务逻辑。主要关注点:

  • 并行度增加可能对 CI 资源(GPU/CPU 节点)造成更大压力,但 Buildkite 流水线通常会根据可用资源自动调度,且已有其他任务使用类似的并行配置。
  • 理论上测试分片可能导致部分分片负载不均衡,但 pytest 的 --shard-id 按测试用例散列分配,通常均匀。
  • CI 执行时间:预期 "Multi-Modal Processor (CPU)" 任务(原超时 125 分钟)和 "Basic Models Tests (Extra Initialization)" 任务(原超时 100 分钟)的 wall-clock 时间将大致减半(并行度翻倍),从而缩短整体 CI 流水线时长。
  • CI 资源消耗:并行节点数增加,总计算资源消耗略有上升,但测试内容不变,总 CPU/GPU 时间基本持平。
  • 开发者体验:更快获得 CI 反馈,提升开发效率。
CI 资源竞争

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论