执行摘要
- 一句话:为夜间测试套件添加/rerun-test命令支持,扩展CI工具能力。
- 推荐动作:此PR值得快速浏览以了解CI工具的扩展点,但不需深入分析。关注点在于如何将CI工作流配置映射到命令行工具,这对于维护类似基础设施的团队有参考价值。
功能与动机
根据PR描述,当前/rerun-test命令对任何注册在nightly-*套件中的测试文件都会失败,因为CUDA_SUITE_TO_RUNNER字典只包含PR测试套件映射(stage-a、stage-b、stage-c)。此变更添加了缺失的夜间和每周套件条目,使开发者能够从PR评论中重新运行单个夜间测试。
实现拆解
- 扩展CI配置映射:在
scripts/ci/utils/slash_command_handler.py文件的CUDA_SUITE_TO_RUNNER字典中添加了17个新的键值对,包括nightly-1-gpu、nightly-4-gpu、nightly-8-gpu-h200等夜间测试套件,以及weekly-8-gpu-h200每周测试套件,每个套件映射到对应的GPU runner(如1-gpu-h100、4-gpu-h100)。
- 映射来源:这些runner分配源自
.github/workflows/nightly-test-nvidia.yml作业定义,确保与现有夜间CI流程保持一致。
- 无其他配套改动:此PR仅修改了这一个配置文件,没有涉及测试代码、文档或部署脚本的变更。
关键文件:
scripts/ci/utils/slash_command_handler.py(模块 CI工具;类别 infra;类型 configuration;符号 CUDA_SUITE_TO_RUNNER): 这是唯一被修改的文件,包含了/rerun-test命令的核心配置映射。
关键符号:handle_rerun_stage
关键源码片段
scripts/ci/utils/slash_command_handler.py
这是唯一被修改的文件,包含了/rerun-test命令的核心配置映射。
# 在 handle_rerun_stage 函数中定义的 CUDA_SUITE_TO_RUNNER 字典
CUDA_SUITE_TO_RUNNER = {
# PR 测试套件映射(原有部分保持不变)
"stage-a-test-1-gpu-small": "1-gpu-5090",
"stage-a-test-cpu": "ubuntu-latest",
# ... 其他 PR 套件映射
# 新增:夜间测试套件(NVIDIA)
"nightly-1-gpu": "1-gpu-h100", # 映射到 1 个 H100 GPU 的 runner
"nightly-4-gpu": "4-gpu-h100", # 映射到 4 个 H100 GPU 的 runner
"nightly-4-gpu-b200": "4-gpu-b200", # 映射到 4 个 B200 GPU 的 runner
"nightly-8-gpu-common": "8-gpu-h200", # 映射到 8 个 H200 GPU 的 runner(通用套件)
"nightly-8-gpu-h200": "8-gpu-h200", # 映射到 8 个 H200 GPU 的 runner
"nightly-8-gpu-h20": "8-gpu-h20", # 映射到 8 个 H20 GPU 的 runner
"nightly-8-gpu-b200": "8-gpu-b200", # 映射到 8 个 B200 GPU 的 runner
"nightly-eval-text-2-gpu": "2-gpu-h100", # 文本评估套件
"nightly-eval-vlm-2-gpu": "2-gpu-h100", # 视觉语言模型评估套件
"nightly-perf-text-2-gpu": "2-gpu-h100", # 文本性能测试套件
"nightly-perf-vlm-2-gpu": "2-gpu-h100", # 视觉语言模型性能测试套件
"nightly-kernel-1-gpu": "1-gpu-h100", # 内核测试套件(1 GPU)
"nightly-kernel-8-gpu-h200": "8-gpu-h200", # 内核测试套件(8 GPU)
# 新增:每周测试套件
"weekly-8-gpu-h200": "8-gpu-h200", # 映射到 8 个 H200 GPU 的 runner
}
评论区精华
此PR的review过程非常简单,只有Kangyan-Zhou的批准评论,没有其他讨论或争议点。这表明变更被团队认为是直接且必要的改进。
风险与影响
- 风险:低风险:
- 回归风险:变更只添加新映射,不修改现有PR测试套件的映射,因此不会影响现有的/rerun-test功能。
- 配置错误风险:如果映射的runner名称与CI系统中实际可用的runner不匹配,可能导致/rerun-test命令执行失败。但根据PR描述,这些映射源自现有的nightly-test-nvidia.yml,降低了配置错误的风险。
- 性能与安全风险:无直接影响。
-
影响:影响范围:
- 对开发者:显著提升了开发体验,现在可以通过/rerun-test命令方便地重新运行夜间测试,无需手动触发完整CI流程。
- 对系统:扩展了CI工具链的功能完整性,使/rerun-test命令支持更广泛的测试套件类型。
- 对团队:减少了夜间测试调试的摩擦,可能加快问题排查和验证速度。
影响程度:中等,主要影响使用夜间测试的开发者工作流程,不改变核心业务逻辑。
-
风险标记:配置映射风险
关联脉络
- PR #23417 [ci] split stage-c-test-4-gpu-b200 to enable a low-disk runner pool: 同样修改了slash_command_handler.py文件,涉及CI测试套件和runner的配置调整。
- PR #23413 Fix docker build error: 同属基础设施(infra)类别的PR,关注CI/部署工具的改进。
参与讨论