Prhub

#22830 ci: enable /rerun-test for nightly test suites

原始 PR 作者 alisonshao 合并时间 2026-04-22 09:28 文件变更 1 提交数 2 评论 5 代码增减 +17 / -0

执行摘要

为夜间测试套件添加 /rerun-test 命令支持,扩展 CI 工具能力。

根据PR描述,当前/rerun-test命令对任何注册在nightly-*套件中的测试文件都会失败,因为CUDA_SUITE_TO_RUNNER字典只包含PR测试套件映射(stage-a、stage-b、stage-c)。此变更添加了缺失的夜间和每周套件条目,使开发者能够从PR评论中重新运行单个夜间测试。

此PR值得快速浏览以了解CI工具的扩展点,但不需深入分析。关注点在于如何将CI工作流配置映射到命令行工具,这对于维护类似基础设施的团队有参考价值。

讨论亮点

此PR的review过程非常简单,只有Kangyan-Zhou的批准评论,没有其他讨论或争议点。这表明变更被团队认为是直接且必要的改进。

实现拆解

  1. 扩展CI配置映射:在scripts/ci/utils/slash_command_handler.py文件的CUDA_SUITE_TO_RUNNER字典中添加了17个新的键值对,包括nightly-1-gpunightly-4-gpunightly-8-gpu-h200等夜间测试套件,以及weekly-8-gpu-h200每周测试套件,每个套件映射到对应的GPU runner(如1-gpu-h1004-gpu-h100)。
  2. 映射来源:这些runner分配源自.github/workflows/nightly-test-nvidia.yml作业定义,确保与现有夜间CI流程保持一致。
  3. 无其他配套改动:此PR仅修改了这一个配置文件,没有涉及测试代码、文档或部署脚本的变更。
文件 模块 状态 重要度
scripts/ci/utils/slash_command_handler.py CI 工具 modified 4.38

关键符号

handle_rerun_stage

关键源码片段

scripts/ci/utils/slash_command_handler.py configuration

这是唯一被修改的文件,包含了 /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测试套件的映射,因此不会影响现有的/rerun-test功能。
  • 配置错误风险:如果映射的runner名称与CI系统中实际可用的runner不匹配,可能导致/rerun-test命令执行失败。但根据PR描述,这些映射源自现有的nightly-test-nvidia.yml,降低了配置错误的风险。
  • 性能与安全风险:无直接影响。

影响范围

  • 对开发者:显著提升了开发体验,现在可以通过/rerun-test命令方便地重新运行夜间测试,无需手动触发完整CI流程。
  • 对系统:扩展了CI工具链的功能完整性,使/rerun-test命令支持更广泛的测试套件类型。
  • 对团队:减少了夜间测试调试的摩擦,可能加快问题排查和验证速度。
    影响程度:中等,主要影响使用夜间测试的开发者工作流程,不改变核心业务逻辑。
配置映射风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论