执行摘要
将 CPU 测试套件拆分为 4 个并行分区,解决执行时间接近超时的问题。
PR body明确指出:测试套件已增长到约1219秒的预估测试时间,涵盖115个注册测试;单任务运行接近10分钟的步骤超时限制。需要通过分区来缓解时间压力。
该PR是典型的CI优化变更,实现简洁且复用现有机制。建议关注LPT分区策略的实际效果,以及后续是否需要对其他测试套件进行类似拆分。
本次PR没有review评论,从提交历史和PR body看,作者直接实施了变更并提供了测试运行链接作为验证。
PR body明确指出:测试套件已增长到约1219秒的预估测试时间,涵盖115个注册测试;单任务运行接近10分钟的步骤超时限制。需要通过分区来缓解时间压力。
该PR是典型的CI优化变更,实现简洁且复用现有机制。建议关注LPT分区策略的实际效果,以及后续是否需要对其他测试套件进行类似拆分。
本次PR没有review评论,从提交历史和PR body看,作者直接实施了变更并提供了测试运行链接作为验证。
.github/workflows/pr-test.yml中,为stage-a-test-cpu作业添加strategy.matrix.partition: [0, 1, 2, 3],并在run_suite.py调用中传递--auto-partition-id ${{ matrix.partition }} --auto-partition-size 4参数,实现4个并行分区的自动划分。wait-for-stage-a.jobs中的stage-a-test-cpu条目从字符串改为{"prefix": "stage-a-test-cpu", "expected_count": 4},确保等待逻辑能轮询所有4个分片。.claude/skills/ci-workflow-guide/SKILL.md中,将stage-a-test-cpu的分区数从1更新为4,保持文档与实际配置一致。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
.github/workflows/pr-test.yml |
CI 工作流 | modified | 4.13 |
.claude/skills/ci-workflow-guide/SKILL.md |
文档 | modified | 1.72 |
.github/workflows/pr-test.yml
configuration
核心变更文件,定义了 CI 工作流的分区配置和等待逻辑。
# 在 stage-a-test-cpu 作业定义中添加矩阵分区
stage-a-test-cpu:
runs-on: ubuntu-latest
timeout-minutes: 240
strategy:
fail-fast: false
matrix:
partition: [0, 1, 2, 3] # 将作业拆分为 4 个并行分区
steps:
- name: Run test suite
run: |
cd test/
# 通过 --auto-partition-id 和 --auto-partition-size 参数实现自动分区
python3 run_suite.py --hw cpu --suite stage-a-test-cpu \
--auto-partition-id ${{ matrix.partition }} \
--auto-partition-size 4 \
$CONTINUE_ON_ERROR_FLAG
# 更新等待作业配置,确保能轮询所有 4 个分片
wait-for-stage-a:
jobs: '["stage-a-test-1-gpu-small", {"prefix": "stage-a-test-cpu", "expected_count": 4}]'
# 注意:prefix 匹配作业名前缀,expected_count 指定期望完成的分片数量
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
wait-for-stage-a.jobs配置更新后,若expected_count与实际分区数不匹配,可能导致等待提前结束或无限等待。当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论