Prhub

#22284 Add fast-fail to multimodal-gen CI

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

执行摘要

为多模态生成 CI 添加快速失败机制,提升 PR 测试效率。

PR body明确指出目标:为multimodal-gen-test-1-b200任务添加缺失的check-stage-health步骤,并在PR运行中启用pytest -x(exitfirst)参数,使测试在首次失败时停止,而非运行所有测试。这旨在提升CI反馈速度,减少资源浪费。

该PR变更直接,适合快速审阅以了解CI优化策略。关注点:check-stage-health步骤的添加确保了环境检查一致性;pytest -x的引入体现了CI场景差异化设计(PR vs 定时运行)。

讨论亮点

无review评论,仅PR body中作者说明了变更内容和测试计划。

实现拆解

变更涉及两个文件:1) .github/workflows/pr-test-multimodal-gen.yml:在第175行后添加check-stage-health步骤,确保该任务与其他多模态任务一致。2) python/sglang/multimodal_gen/test/run_suite.py:修改run_pytest函数,新增exitfirst参数控制是否添加-x标志;在main函数中,根据--continue-on-error参数决定是否启用快速失败(默认启用)。

文件 模块 状态 重要度
.github/workflows/pr-test-multimodal-gen.yml CI/Workflows modified 4.0
python/sglang/multimodal_gen/test/run_suite.py 测试工具 modified 5.0

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

关键符号

run_pytest main

评论区精华

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

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

风险与影响

风险较低:1) check-stage-health步骤添加可能引入额外检查失败,但这是环境健康检查,有助于提前发现问题。2) pytest -x可能导致某些在后续测试中可能通过的失败被掩盖,但PR body明确区分了PR运行(启用)和定时运行(禁用),已考虑不同场景。

影响范围限于多模态生成CI流水线:1) 对开发者:PR测试失败时更快获得反馈,减少等待时间。2) 对系统:减少CI资源消耗,提升测试效率。3) 对团队:标准化多模态任务检查步骤,提高CI一致性。

环境检查变更 测试流程调整

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR为多模态生成CI添加快速失败机制,通过补全环境健康检查步骤和启用pytest -x参数,优化PR测试反馈速度,减少无效测试执行,属于基础设施改进。

功能与动机

PR旨在解决多模态生成CI测试效率问题:

  • 补全检查步骤multimodal-gen-test-1-b200任务此前缺少check-stage-health步骤,导致环境检查不一致。
  • 启用快速失败:PR运行中测试失败时,希望立即停止而非运行所有测试,以加速反馈并节省资源。PR body明确说明:“Add pytest -x (exitfirst) to run_suite.py when --continue-on-error is not set, so PR runs stop on first test failure instead of running all tests”。

实现拆解

变更涉及两个文件:

  1. CI工作流文件.github/workflows/pr-test-multimodal-gen.yml):
    • 在第175行后添加- uses: ./.github/actions/check-stage-health,使该任务与其他多模态任务保持一致。
  2. 测试运行脚本python/sglang/multimodal_gen/test/run_suite.py):
    • 修改run_pytest函数,新增exitfirst参数:
      python def run_pytest(files, filter_expr=None, exitfirst=False): base_cmd = [sys.executable, "-m", "pytest", "-s", "-v"] if exitfirst: base_cmd.append("-x")
    • main函数中,根据--continue-on-error参数决定是否启用快速失败:
      python exit_code = run_pytest(my_items, exitfirst=not args.continue_on_error)
    • 设计上区分了PR运行(默认启用-x)和定时运行(使用--continue-on-error禁用-x)。

评论区精华

无review评论,仅PR author在body中说明了变更内容和测试计划。

风险与影响

  • 风险check-stage-health步骤可能引入额外检查失败,但这是有益的环境健康检查;pytest -x可能掩盖后续可通过的测试失败,但PR body已通过场景区分(PR运行启用,定时运行禁用)缓解此问题。
  • 影响
    • 对开发者:PR测试失败时反馈更快,提升开发体验。
  • 对系统:减少CI资源消耗,提高测试流水线效率。
  • 对团队:标准化多模态CI检查步骤,增强一致性。

关联脉络

  • 与PR #22251(“[diffusion] CI: fix consistency check”)相关,同属多模态/扩散模型CI优化,关注测试稳定性和配置调整。
  • 与PR #22229(“fix(pcg,mm): fix zeroing of input_embeds when replay PCG”)相关,均涉及多模态模型测试修复,反映团队在持续完善该领域测试基础设施。

参与讨论