# PR #24914 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Fix sgl-kernel-mla-test path after test was moved to test/manual
- 合并时间：2026-05-11 13:00
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/24914

---

# 执行摘要

- 一句话：修复 CI 中 sgl-kernel-mla-test 路径错误
- 推荐动作：建议快速合并此 PR，因为它修复了阻塞所有 PR 的 CI 回归问题。同时值得关注的是优化路径过滤的设计决策：避免纯配置变更触发昂贵构建，这是一个良好的 CI 实践。

# 功能与动机

PR #24721 移动了测试文件但未更新 CI 工作流中对应的硬编码路径，导致 sgl-kernel-mla-test 作业因找不到文件而失败，并且该失败通过 check-stage-health 级联导致所有 stage-b/c 失败。PR 描述明确指出这是回归问题，需要修复。

# 实现拆解

1. **修复路径**：在 `.github/workflows/pr-test-sgl-kernel.yml` 中，将 `cd test/registered/mla` 改为 `cd test/manual/mla`，使 CI 能找到移动后的测试文件。
2. **删除冗余作业**：移除了 `sgl-kernel-mla-test` 整个作业块（约 35 行），因为该测试已由 deepep CI 覆盖，且该作业独占昂贵的 1-gpu-h100 资源，不再必要。
3. **优化路径过滤**：在 `.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 构建。

```yaml
# .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 配置导致的回归。