Prhub

#23510 [CI] /rerun-stage: fix workflow-run URL lookup for sgl-kernel PRs

原始 PR 作者 Kangyan-Zhou 合并时间 2026-04-23 08:48 文件变更 1 提交数 1 评论 1 代码增减 +5 / -1

执行摘要

修复 CI 中 /rerun-stage 命令在 sgl-kernel PR 上无法正确生成工作流运行 URL 的问题。

PR #23492引入的自动include_wheel_build路径需要pr_head_sha来检测内核变更,但忘记更新handle_rerun_stage函数中的本地pr_head_sha变量。这导致find_workflow_run_url函数构建的预期显示标题(不含SHA后缀)与工作流实际运行名称(包含SHA后缀)不匹配,URL查找超时后成功评论降级为警告信息。具体问题在PR #21247(修改sgl-kernel)上观察到:调度本身正常工作,但成功评论中的深链接丢失。

该PR变更简单直接,适合CI维护者快速浏览以理解变量同步的重要性。值得关注的设计决策是确保本地变量与工作流输入的一致性,避免因元数据不匹配导致的功能降级。

讨论亮点

无review评论,所有讨论内容均在PR body中由作者Kangyan-Zhou详细说明。

实现拆解

  1. 问题定位与修复:在scripts/ci/utils/slash_command_handler.pyhandle_rerun_stage函数中,当检测到内核变更且非AMD阶段时,除了设置inputs["pr_head_sha"] = pr.head.sha(已在PR #23492中添加)外,现在也同步设置本地变量pr_head_sha = pr.head.sha
  2. 逻辑一致性:这样确保find_workflow_run_url函数构建的预期显示标题包含SHA后缀,与工作流运行名称(由.github/workflows/pr-test.yml中的run-name指令生成)匹配。
  3. 向后兼容性:fork路径的本地pr_head_sha已在if is_fork:块中设置,保持不变;非fork且无内核变更的路径也不受影响。
  4. 测试配套:无新增测试文件,但PR body中描述了离线模拟验证和计划中的触发测试。
文件 模块 状态 重要度
scripts/ci/utils/slash_command_handler.py CI 脚本 modified 3.25

关键符号

handle_rerun_stage

关键源码片段

scripts/ci/utils/slash_command_handler.py infrastructure

这是唯一修改的文件,包含 /rerun-stage 命令的处理逻辑,修复了工作流运行 URL 查找的回归问题。

def handle_rerun_stage(...):
    # ... 其他代码 ...
​
    if kernel_changes and not is_amd_stage:
        inputs["include_wheel_build"] = "true"
        # include_wheel_build 依赖 filter-api 检测内核变更,这需要 pr_head_sha。
        # 确保为非 fork PR 设置 pr_head_sha,并保持本地 pr_head_sha 同步,
        # 以便 find_workflow_run_url 构建包含 SHA 后缀的预期显示标题
        # (工作流的 run-name 会在 inputs.pr_head_sha 设置时包含 SHA)。
        if not is_fork:
            inputs["pr_head_sha"] = pr.head.sha
            pr_head_sha = pr.head.sha # 新增:同步本地变量
​
    # Record dispatch time before triggering
    dispatch_time = time.time()
    # ... 后续代码 ...

评论区精华

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

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

风险与影响

风险极低:仅修改一个CI脚本中的变量赋值,不涉及核心业务逻辑、性能或安全。潜在风险包括:

1) 变量同步逻辑可能在其他分支路径中被遗漏,但PR body已分析所有路径的兼容性;
2) 若未来工作流运行名称格式变更,可能导致URL查找再次失败。

影响范围限于CI基础设施:修复后,修改sgl-kernel的非fork PR使用/rerun-stage命令时,成功评论将正确包含工作流运行URL,提升开发者体验。不影响用户功能、系统性能或团队开发流程。

元数据不一致

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论