Prhub

#22301 Only upload CUDA coredumps on test failure

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

执行摘要

优化 CI 工作流,仅在测试失败时上传 CUDA coredump,减少资源浪费。

根据PR body,coredumps只在崩溃时产生,所以在成功或取消时上传是浪费工作,旨在减少不必要的CI资源消耗。

此PR变更简单但有效,值得CI维护工程师关注以了解优化实践;对于一般开发者,可快速浏览确认变更覆盖范围,无需深入代码解析。

讨论亮点

review评论为空,没有实质性技术讨论;作者仅执行了/tag-and-rerun-ci命令以触发CI,变更直接合并。

实现拆解

统一修改了四个工作流文件:.github/workflows/pr-test.yml、pr-test-multimodal-gen.yml、rerun-test.yml和nightly-test-nvidia.yml。在每个文件中的'upload-cuda-coredumps'步骤,将条件从'if: always()'改为'if: failure()',总共32个出现次数,无需代码逻辑变更。

文件 模块 状态 重要度
.github/workflows/nightly-test-nvidia.yml CI/Infrastructure modified 3.0
.github/workflows/pr-test.yml CI/Infrastructure modified 3.0
.github/workflows/pr-test-multimodal-gen.yml CI/Infrastructure modified 3.0
.github/workflows/rerun-test.yml CI/Infrastructure modified 3.0

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

评论区精华

无实质性讨论 other

review 评论为空,仅有两个非技术评论:gemini-code-assist[bot] 的配额警告和作者 hnyls2002 的 /tag-and-rerun-ci 命令。

结论:变更直接合并,无争议或设计权衡讨论。 · 已解决

风险与影响

主要风险是如果测试失败但coredump未正确上传,可能导致调试信息丢失;但由于coredumps只在崩溃时产生,且步骤在failure条件下触发,风险较低。需确保所有崩溃场景都能被捕获,尤其是在边缘情况下如部分失败或超时。

对用户无直接影响;对系统:减少CI运行时的上传开销,可能加快成功测试的完成时间并降低存储成本;对团队:提高CI资源利用率,但需注意调试时coredump的可用性,尤其是对于多模态和夜间测试套件。

潜在调试信息丢失 CI 步骤条件变更

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

此PR优化了CI工作流,将CUDA coredump上传步骤从始终执行改为仅在测试失败时执行,以减少资源浪费。变更覆盖所有主要测试套件,包括PR测试、多模态生成测试、重跑测试和夜间测试,总计32处修改。风险较低,但对调试信息可用性需保持关注。

功能与动机

为什么做? 根据PR body描述,coredumps仅在测试崩溃时产生,因此在成功或取消的测试中上传是无效工作,浪费CI资源。作者旨在通过条件优化减少不必要的上传开销,提升CI效率。引用PR body关键表述:"Coredumps are only produced on crashes, so uploading on success/cancel is wasted work"。

实现拆解

做了什么? 统一修改了四个GitHub Actions工作流文件中的upload-cuda-coredumps步骤条件:

  • 文件列表
    • .github/workflows/nightly-test-nvidia.yml(16处修改)
    • .github/workflows/pr-test.yml(12处修改)
    • .github/workflows/pr-test-multimodal-gen.yml(3处修改)
    • .github/workflows/rerun-test.yml(1处修改)
  • 关键变更:将所有if: always()替换为if: failure(),确保coredump仅在上传步骤失败时触发。示例代码片段:
    ```yaml
  • uses: ./.github/actions/upload-cuda-coredumps
    if: failure() # 原为 if: always()
    ```

评论区精华

讨论了什么? review评论为空,无实质性技术讨论。仅有两条评论:

gemini-code-assist[bot]: "You have reached your daily quota limit..."
hnyls2002: "/tag-and-rerun-ci"
这表明变更直接通过,无争议或设计权衡,团队对CI优化达成共识。

风险与影响

风险分析

  • 调试信息丢失风险:如果测试失败但coredump未正确上传(如条件未捕获所有崩溃场景),可能影响问题排查。
  • 边缘情况覆盖:需确保failure()条件能处理所有异常退出,包括超时或部分失败。
    影响分析

  • 系统影响:减少CI存储和带宽开销,加快成功测试运行时间。

  • 团队影响:提升CI资源利用率,但对调试流程需稍作调整以确保coredump可用。
  • 用户影响:无直接影响,属于后台优化。

关联脉络

与历史PR的关系

  • PR 22284:为多模态生成CI添加快速失败机制,与本PR共同优化测试效率。
  • PR 22288 和 22297:涉及夜间测试模型更新和撤销,显示团队对CI配置的持续调整,本PR是这一趋势的延续。
  • 整体趋势:近期多个PR(如21931、22232)聚焦CI和性能优化,表明团队在提升系统稳定性和资源效率方面的持续投入。

参与讨论