Prhub

#34813 [CI] Surface AMD ROCm 7.2 state in the PR CI-states block

原始 PR 作者 michaelzhang-ai 合并时间 2026-08-20 13:18 文件变更 1 提交数 2 评论 1 代码增减 +43 / -11

执行摘要

PR 状态块新增 AMD ROCm 7.2 行,不影响门禁

PR 描述中的 CI 状态块此前仅查询 pr-test.yml 和 pr-test-extra.yml,未包含 AMD ROCm 7.2 测试结果,导致合并值班人员只看到 CUDA 结果,无法直观了解 AMD 测试状态。本 PR 通过新增 AMD 查询行,让状态块更完整。

该 PR 值得快速了解,展示了 CI 状态展示的改进思路,但无复杂设计,适合维护 CI 的工程师精读。

讨论亮点

在 issue 评论中,作者 michaelzhang-ai 回应了 reviewer bingxche 关于 label-only 空运行覆盖真实结果的担忧,承认 always() 聚合器会成功而非跳过,因此原来的 per_page: 10 加跳过 skipped 的过滤无法捕获,已回退到原始单次查询逻辑。其他两点也确认修复。

实现拆解

  1. 在 .github/workflows/pr-states.yml 的 workflow_run 触发器中加入 'PR Test ROCm 7.2 (AMD)',使 AMD 工作流完成时也能触发状态更新。
  2. 在 workflow_run 事件处理逻辑中增加 event 检查,仅接受 pull_request 事件,避免单阶段 workflow_dispatch 运行被误用。
  3. 在 findRun 函数中增加 event: 'pull_request' 过滤,确保查询完整门禁运行。
  4. 新增 AMD 查询,与现有 Base、Extra 查询并发执行,不增加墙钟时间,并在缺失时使用中性文案。
文件 模块 状态 重要度
.github/workflows/pr-states.yml CI 状态 modified 4.88

关键符号

findRun

关键源码片段

.github/workflows/pr-states.yml infrastructure

核心变更文件,控制 PR 状态块的生成逻辑

# workflow_run 触发:新增 AMD 工作流以响应其完成事件
workflow_run:
  workflows: ["PR Test Base", "PR Test Extra", "PR Test ROCm 7.2 (AMD)"]
  types: [requested, completed]# 处理 workflow_run 事件时,仅接受 pull_request 事件
if (wr.event !== 'pull_request') {
  core.info(`Triggering run event '${wr.event}' is not pull_request; skipping.`);
  return;
}# findRun 函数增加 event 过滤,确保查询完整门禁运行
event: 'pull_request',

评论区精华

label-only 空运行覆盖真实结果 正确性

作者 michaelzhang-ai 回应 bingxche 的问题,承认原逻辑无法捕获 always() 聚合器导致的成功运行,已回退。

结论:回退到原始单次查询逻辑,避免覆盖。 · 已解决

风险与影响

变更仅涉及 CI 工作流文件,不影响运行时逻辑。风险在于:AMD 工作流路径过滤可能导致查询不到运行,但已采用中性文案;事件过滤可能遗漏某些合法的 workflow_dispatch 更新,但设计上刻意规避。

影响仅针对 PR 描述的 CI 状态块展示,提升 AMD 测试可见性,不改变 CI 执行和合并门禁,对用户和系统无影响,团队受益于更完整的 CI 概览。

CI 配置变更 单一文件变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论