Prhub

#22489 [AMD] Replace push trigger with scheduled runs and enable parallel stage execution

原始 PR 作者 yctseng0211 合并时间 2026-04-14 13:33 文件变更 1 提交数 6 评论 6 代码增减 +104 / -46

执行摘要

将 AMD CI 工作流从 push 触发改为调度触发,并优化阶段执行策略以减少资源压力。

根据PR body,动机是“Remove push trigger to avoid redundant CI runs on every merge to main, reducing AMD runner pressure”和“Add schedule trigger (every 6 hours) to periodically validate main branch”。旨在减少AMD runner压力,并通过定期调度确保main分支验证。

建议CI维护者和AMD平台开发者精读此PR,关注并发控制逻辑和错误处理机制,特别是 check-changes 作业的条件判断和 continue_on_error 设置,这些设计决策有助于优化CI资源管理和稳定性。

讨论亮点

核心讨论来自amd-bot的review评论,指出了关键bug:“Bug 1 — check-changes will be skipped on schedule runs (Critical)”。该问题涉及 check-changes 作业在调度运行中可能因依赖 call-gate 而被跳过,导致测试不完整。讨论结论是通过后续commit修复,添加了 if: always() 和调整依赖逻辑,确保 check-changes 在调度运行中正常执行。

实现拆解

修改了唯一文件 .github/workflows/pr-test-amd.yml

  1. on: push 触发器替换为 on: schedule(每6小时运行);
  2. 引入 wait-for-stage-a-amdwait-for-stage-b-amd 作业,通过GitHub API轮询控制阶段执行顺序;
  3. 调整 concurrency 设置,使调度运行和 run_all_tests 运行使用唯一组以避免相互取消,PR运行共享组以支持新推送取消旧运行;
  4. check-changes 作业中添加 continue_on_error 输出逻辑,自动为调度运行启用;
  5. 添加条件判断,调度运行跳过 call-gate 作业。
文件 模块 状态 重要度
.github/workflows/pr-test-amd.yml CI/ 基础设施 modified 8.0

关键符号

check-changes wait-for-stage-a-amd wait-for-stage-b-amd

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

评论区精华

check-changes 作业在调度运行中被跳过的风险 正确性

amd-bot 在 review 中指出“Bug 1 — `check-changes` will be skipped on schedule runs (Critical)”,强调该作业可能因依赖 call-gate 而被跳过,导致测试不完整。

结论:通过后续 commit(如 b9956f0)修复,调整了 check-changes 作业的条件和依赖,确保在调度运行中正常执行。 · 已解决

风险与影响

技术风险包括:

  1. 调度运行中 check-changes 作业可能被错误跳过,导致变更检查遗漏,引发测试覆盖不足(已在commit中修复);
  2. concurrency 设置复杂,如果配置错误可能导致PR运行与调度运行冲突,或调度运行相互取消;
  3. 并行阶段执行在调度运行中可能增加资源竞争,影响其他CI作业性能。风险主要集中在对文件 .github/workflows/pr-test-amd.yml 中条件逻辑和并发组管理的依赖。

对系统:减少AMD runner在每次main合并时的运行压力,提高资源利用率;调度运行每6小时验证main分支,确保定期测试覆盖。对团队:CI运行频率从push触发改为调度触发,团队需适应新的验证周期;并行执行加速调度运行,但可能增加调试复杂性。对用户:无直接影响,属于内部基础设施优化。

调度运行中 check-changes 可能被跳过 并发设置风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论