# PR #22011 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Workflow] Fix kernel release jobs skipped on push events
- 合并时间：2026-04-03 14:03
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/22011

---

# 执行摘要
修复了内核发布工作流（release-whl-kernel.yml）在 push 到 main 分支时构建作业被跳过的问题。通过在四个构建作业的 if 条件中添加 `github.event_name == 'push'` 检查，确保 push 事件能正确触发构建，而 workflow_dispatch 事件仍按目标选择运行。此变更仅影响 CI/CD 流程，风险较低，但需验证测试计划以确保修复有效。

# 功能与动机
**问题背景**：内核发布工作流在 push 到 main 分支时（例如内核版本更新推送），所有构建作业被跳过，如 [ 此运行 ](https://github.com/sgl-project/sglang/actions/runs/23935264422) 所示。这阻碍了自动化发布流程，可能需手动触发。

**根本原因**：构建作业的 if 条件仅检查 `github.event.inputs.target`，该参数仅在 `workflow_dispatch` 事件中填充，在 `push` 事件中为 `null`。导致 push 事件无法满足条件，作业被跳过。

**修复目标**：确保工作流在 push 和 workflow_dispatch 事件中都能正确触发构建作业，提升发布自动化可靠性。

# 实现拆解
仅修改一个文件：`.github/workflows/release-whl-kernel.yml`。对四个构建作业的 if 条件进行相同模式调整：

| 作业名 | 原条件 | 新条件 |
|--------|--------|--------|
| build-cu129-matrix | `github.event.inputs.target == 'all' || github.event.inputs.target == 'cu129'` | `github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'cu129'` |
| build-cu130-matrix | `github.event.inputs.target == 'all' || github.event.inputs.target == 'cu130'` | `github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'cu130'` |
| build-rocm-matrix | `github.event.inputs.target == 'all' || ...` | `github.event_name == 'push' || github.event.inputs.target == 'all' || ...` |
| build-musa43 | `github.event.inputs.target == 'all' || github.event.inputs.target == 'musa43'` | `github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'musa43'` |

**关键逻辑**：添加 `github.event_name == 'push'` 作为逻辑或的第一项，确保 push 事件直接满足条件；workflow_dispatch 事件仍通过 target 参数选择作业。

# 评论区精华
无 review 评论，PR 由作者 Fridge003 直接合并。从 PR body 可提取以下要点：

> **测试计划**：
> - 验证下次内核版本 bump 推送能触发所有构建作业而非跳过
> - 验证 workflow_dispatch 事件仍能按目标选择运行特定作业

这反映了作者对修复的验证思路，但尚未看到执行结果。

# 风险与影响
**技术风险**：
1. **条件逻辑错误**：新条件可能意外触发作业（如在非 push 事件中），但逻辑清晰，风险低。
2. **CI 资源增加**：push 事件现会触发所有构建作业，可能增加 CI 负载，但这是预期行为。
3. **缺少测试验证**：PR body 中的测试计划未显示结果，需后续监控。

**影响分析**：
- **用户**：无直接影响，不涉及功能变更。
- **系统**：仅影响 CI/CD 流程，修复后提升发布自动化可靠性。
- **团队**：减少手动干预，提高内核发布效率。

# 关联脉络
此 PR 是团队持续优化 CI 流程的一部分，与近期多个 CI 相关 PR 形成脉络：
- **PR 22010**：优化内核版本更新工作流，避免触发夜间测试，简化流程。
- **PR 22014**：同作者 Fridge003 调整 CI 权限，提升操作效率。
- **PR 22001**：修复工作流重复作业名以加强分支保护。

**趋势洞察**：团队正系统性地改进 GitHub Actions 工作流，关注事件触发、权限管理和资源优化，以提升开发效率和系统稳定性。此 PR 解决了事件类型差异导致的常见陷阱，为类似工作流提供参考模式。