Prhub

#22141 Add failfast flag to rerun-test workflow

原始 PR 作者 hnyls2002 合并时间 2026-04-05 15:24 文件变更 1 提交数 1 评论 1 代码增减 +2 / -2

执行摘要

在 rerun-test 工作流中添加 --failfast 标志,避免测试失败后继续浪费 GPU 时间。

根据 PR body 描述,当前 rerun-test 工作流在运行测试时缺少 --failfast 标志,导致当 setUpClass 失败(例如模型加载时出现 OOM)时,unittest 仅跳过该测试类的测试,但会继续运行后续测试类,从而在已损坏的 runner 上浪费 GPU 时间。run_suite.py 已传递 -f 标志(参见 ci_utils.py:163),但 /rerun-test 绕过 run_suite.py 直接运行文件,因此需要在此工作流中添加该标志。

该 PR 变更简单直接,无需深入精读。值得关注的点是它揭示了 CI 工作流中与 run_suite.py 行为不一致的问题,建议团队检查其他类似工作流是否也存在相同遗漏。

讨论亮点

由于 review 评论为空,没有讨论记录。PR 由作者自行合并,表明变更被直接接受。

实现拆解

实现非常简单,仅修改了一个文件:.github/workflows/rerun-test.yml。在 CUDA 作业(第 87 行)和 CPU 作业(第 132 行)的 python3 $cmd 命令后添加了 -f 标志(即 unittest 的 --failfast 选项),确保测试在首次失败时立即停止。

文件 模块 状态 重要度
.github/workflows/rerun-test.yml CI/Workflows modified 10.0

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

评论区精华

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

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

风险与影响

风险极低:变更仅涉及 CI 工作流配置,不修改运行时代码。添加 -f 标志是标准 unittest 行为,不会引入功能回归。唯一潜在风险是如果测试类之间存在依赖关系,快速失败可能掩盖后续测试问题,但这是 --failfast 的预期行为,且与 run_suite.py 的行为保持一致。

影响范围限于 CI 基础设施:减少在已失败测试环境下继续运行测试所浪费的 GPU 时间和计算资源,提升 CI 效率。对用户和系统功能无直接影响。团队受益于更快的失败反馈和更低的 CI 成本。

无代码变更

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

  • 一句话:在 rerun-test 工作流中添加 --failfast 标志,避免测试失败后继续浪费 GPU 时间。
  • 推荐动作:该 PR 变更简单直接,无需深入精读。值得关注的点是它揭示了 CI 工作流中与 run_suite.py 行为不一致的问题,建议团队检查其他类似工作流是否也存在相同遗漏。

功能与动机

根据 PR body 描述,当前 rerun-test 工作流在运行测试时缺少 --failfast 标志,导致当 setUpClass 失败(例如模型加载时出现 OOM)时,unittest 仅跳过该测试类的测试,但会继续运行后续测试类,从而在已损坏的 runner 上浪费 GPU 时间。run_suite.py 已传递 -f 标志(参见 ci_utils.py:163),但 /rerun-test 绕过 run_suite.py 直接运行文件,因此需要在此工作流中添加该标志。

实现拆解

实现非常简单,仅修改了一个文件:.github/workflows/rerun-test.yml。在 CUDA 作业(第 87 行)和 CPU 作业(第 132 行)的 python3 $cmd 命令后添加了 -f 标志(即 unittest 的 --failfast 选项),确保测试在首次失败时立即停止。

关键文件:

  • .github/workflows/rerun-test.yml(模块 CI/Workflows): 唯一修改的文件,在 CUDA 和 CPU 作业中添加 -f 标志以启用 unittest 的 --failfast 行为。

关键符号:未识别

评论区精华

由于 review 评论为空,没有讨论记录。PR 由作者自行合并,表明变更被直接接受。

  • 暂无高价值评论线程

风险与影响

  • 风险:风险极低:变更仅涉及 CI 工作流配置,不修改运行时代码。添加 -f 标志是标准 unittest 行为,不会引入功能回归。唯一潜在风险是如果测试类之间存在依赖关系,快速失败可能掩盖后续测试问题,但这是 --failfast 的预期行为,且与 run_suite.py 的行为保持一致。
  • 影响:影响范围限于 CI 基础设施:减少在已失败测试环境下继续运行测试所浪费的 GPU 时间和计算资源,提升 CI 效率。对用户和系统功能无直接影响。团队受益于更快的失败反馈和更低的 CI 成本。
  • 风险标记:无代码变更

关联脉络

  • PR #22119 feat: CI auto-bisect workflow for automated regression analysis: 同属 CI 基础设施改进,关注提升 CI 效率和稳定性。
  • PR #22103 Fix killall_sglang missing the main sglang serve process: 同属 CI 基础设施修复,解决资源清理问题。
  • PR #22138 [CI]Temporary ban auto benchmark tool test: 同属 CI 稳定性优化,通过禁用不稳定测试减少 CI 问题。

参与讨论