Prhub

#24112 [AMD] Update AMD Nightly Test checkout mechanism

原始 PR 作者 yctseng0211 合并时间 2026-04-30 11:36 文件变更 2 提交数 1 评论 2 代码增减 +70 / -70

执行摘要

修复 AMD 夜间测试 checkout 指向移动指针问题

github.ref 是移动指针(如 refs/heads/main),导致“Re-run failed jobs”时检出比原始失败时更新的代码,使失败无法复现或 bisect。PR body 给出了具体例子:原调度运行检出 826f2d062,重跑后检出 8327270c7(相差约 30 个 commit)。

此 PR 虽小但避免了常见的 CI 暗坑(移动指针引用),值得在同类工作流中推广。若您维护其他 CI 配置,可检查是否也存在类似问题。

讨论亮点

本 PR 无 review 评论,仅由 bingxche 直接批准。

实现拆解

  1. 识别问题:nightly-test-amd*.yml 中 checkout 步骤使用 ${{ inputs.ref || github.ref }},而 pr-test-amd*.yml 已正确使用 ${{ inputs.ref || github.sha }}
  2. 全局替换:在两个文件的每个 job 内部,将 checkout 的 ref 参数从 github.ref 改为 github.shainputs.ref 分支不受影响(显式传入时优先)。
  3. 验证不变项:concurrency.group 保持原样(基于分支的去重逻辑依然合适)。
  4. 覆盖范围:共修改 nightly-test-amd-rocm720.ymlnightly-test-amd.yml 两个文件,每个文件涉及约 35 个 checkouts 步骤。
文件 模块 状态 重要度
.github/workflows/nightly-test-amd-rocm720.yml CI 配置 modified 4.45
.github/workflows/nightly-test-amd.yml CI 配置 modified 4.25

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

评论区精华

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

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

风险与影响

低风险:该变更仅在未传入 inputs.ref 的触发场景(如定时调度、手动重跑)下生效,且与已经稳定运行的 pr-test-amd*.yml 行为一致。无需担心破坏现有流程,但建议合并后观察一次 nightly 运行。

直接提升 AMD 夜间测试的可复现性:失败后重跑将始终基于同一个 commit,便于排错。对用户无直接影响;对维护者而言,减少了因无关代码变动导致的假性通过或失败排查开销。

无显著风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论