执行摘要
- 一句话:修复 CI 中 sgl-kernel-mla-test 路径错误
- 推荐动作:建议快速合并此 PR,因为它修复了阻塞所有 PR 的 CI 回归问题。同时值得关注的是优化路径过滤的设计决策:避免纯配置变更触发昂贵构建,这是一个良好的 CI 实践。
功能与动机
PR #24721 移动了测试文件但未更新 CI 工作流中对应的硬编码路径,导致 sgl-kernel-mla-test 作业因找不到文件而失败,并且该失败通过 check-stage-health 级联导致所有 stage-b/c 失败。PR 描述明确指出这是回归问题,需要修复。
实现拆解
- 修复路径:在
.github/workflows/pr-test-sgl-kernel.yml 中,将 cd test/registered/mla 改为 cd test/manual/mla,使 CI 能找到移动后的测试文件。
- 删除冗余作业:移除了
sgl-kernel-mla-test 整个作业块(约 35 行),因为该测试已由 deepep CI 覆盖,且该作业独占昂贵的 1-gpu-h100 资源,不再必要。
- 优化路径过滤:在
.github/workflows/pr-test.yml 中,从 paths-filter 的 sgl_kernel 触发器中去掉了 .github/workflows/pr-test-sgl-kernel.yml,并在 bash 检测逻辑中同样移除该文件,避免纯 CI 配置变更(如删除作业)触发不必要的 sgl-kernel 构建。
关键文件:
.github/workflows/pr-test-sgl-kernel.yml(模块 CI配置;类别 infra;类型 infrastructure): 修复了测试文件路径(从 test/registered/mla 改为 test/manual/mla),并移除了 sgl-kernel-mla-test 冗余作业。
.github/workflows/pr-test.yml(模块 CI配置;类别 infra;类型 infrastructure): 优化了 sgl_kernel 的路径过滤规则:从 paths-filter 和 bash 检测中去除 .github/workflows/pr-test-sgl-kernel.yml,避免纯 CI 配置变更触发不必要的 sgl-kernel 构建。
关键符号:未识别
关键源码片段
.github/workflows/pr-test.yml
优化了 sgl_kernel 的路径过滤规则:从 paths-filter 和 bash 检测中去除 .github/workflows/pr-test-sgl-kernel.yml,避免纯 CI 配置变更触发不必要的 sgl-kernel 构建。
# .github/workflows/pr-test.yml
# 在 paths-filter 的 sgl_kernel 块中,原本包含 ".github/workflows/pr-test-sgl-kernel.yml",
# 但本 PR 将其移除,并添加注释说明原因:
# # Intentionally excludes ".github/workflows/pr-test-sgl-kernel.yml" —
# # see API-side detector below for rationale.
#
# 对应地,在 API-side 检测 sgl-kernel 变更的 bash 逻辑中:
# 原来:if echo "$CHANGED_FILES" | grep -qE "^(sgl-kernel/|\.github/workflows/pr-test-sgl-kernel\.yml)"; then
# 改为:if echo "$CHANGED_FILES" | grep -qE "^sgl-kernel/"; then
# 并添加了详细注释解释:纯 CI yaml 编辑不应导致 sgl-kernel 重构建。
评论区精华
PR 没有 review 评论,但 PR body 和 commit 信息详细说明了决策:删除作业而非仅修复路径,因为测试已被 deepep CI 覆盖,保留它是资源浪费。优化路径过滤的动机是:之前任何对 pr-test-sgl-kernel.yml 的编辑都会触发 sgl-kernel 构建(耗时 20-30 分钟 + 门禁),而纯 CI 配置变更不应影响 kernel 行为。
风险与影响
- 风险:风险极低:
- 路径修复只是字符串变更,几乎不可能出错。
- 删除作业的风险在于是否有其他流程依赖该作业,但 PR 明确说明 deepep CI 已覆盖,且该作业是 #24721 中原本意图删除的遗漏部分。
- 路径过滤优化可能导致未来如果需要在 pr-test-sgl-kernel.yml 中添加影响 kernel 的变更时不会触发构建,但实际的 wheel 构建逻辑(在 sgl-kernel/ 目录)仍会触发,因此影响可控。
-
影响:正面影响:
- 修复 CI 回归,使 sgl-kernel-mla-test 作业可成功运行。
- 移除冗余作业,节省 CI 资源(每次 PR 节省一个 1-gpu-h100 作业约 30 分钟)。
- 优化路径过滤,避免不必要的 sgl-kernel 重构建,减少 CI 耗时。
负面影响:无。
-
风险标记:CI 回归修复
关联脉络
- PR #24721 ci: prune per-commit CUDA tests: 本 PR 修复了 #24721 移动测试文件后未更新 CI 配置导致的回归。
参与讨论