# PR #25872 完整报告

- 仓库：`sgl-project/sglang`
- 标题：pr-test: schedule 3x -> 2x; fix extra gate skipped on schedule
- 合并时间：2026-05-20 18:58
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/25872

---

# 执行摘要

- 一句话：CI 定时调度从 3 次改为 2 次，修复额外测试跳过问题
- 推荐动作：值得合并，属于 CI 运维优化。建议关注合并后的 CI 运行情况，确认取消率下降。

# 功能与动机

定时 CI 运行（每天 3 次，每 8 小时一次）与运行时长相接近（约 6 小时），新调度触发时前一次仍在运行，导致被取消（30% 的取消率）和重试（33% 的重试率），浪费 GPU 资源。同时，由于 call-gate 在调度路径上被跳过，下游任务因条件检查失败而跳过整个额外测试套件。

# 实现拆解

1. **调整调度频率**：在 `.github/workflows/pr-test.yml` 中，将 cron 表达式从 `'0 1,9,17 * * *'` 改为 `'0 11,23 * * *'`，每天 2 次，间隔 12 小时，避免与前一次运行重叠，并且选在 PR 提交较少的低峰时段。
2. **修复跳过问题**：在 `.github/workflows/pr-test-extra.yml` 中，将所有下游任务的 `if` 条件从 `needs.call-gate.result == 'success'` 改为 `(needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped')`，使得当 call-gate 被跳过时，下游任务仍然可以执行。该改动影响了 `sgl-kernel-build-wheels`、所有 `extra-a-*` 和 `extra-b-*` 作业。

关键文件：
- `.github/workflows/pr-test-extra.yml`（模块 CI 工作流；类别 infra；类型 infrastructure）: 修复 call-gate 在调度路径下跳过导至额外测试套件整体跳过的问题，修改了 8 个下游任务的 if 条件。
- `.github/workflows/pr-test.yml`（模块 CI 工作流；类别 infra；类型 infrastructure）: 修改定时调度 cron 表达式，从每天 3 次改为 2 次。

关键符号：未识别

## 关键源码片段

### `.github/workflows/pr-test-extra.yml`

修复 call-gate 在调度路径下跳过导至额外测试套件整体跳过的问题，修改了 8 个下游任务的 if 条件。

```yaml
# .github/workflows/pr-test-extra.yml
# 原来只检查 needs.call-gate.result == 'success'
# 现在也允许 skipped，因为 schedule 触发时 call-gate 被跳过
jobs:
  sgl-kernel-build-wheels:
    if: |
      needs.check-changes.result == 'success' &&
      (needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') &&
      needs.check-changes.outputs.sgl_kernel == 'true'
  extra-a-test-1-gpu-small:
    if: ${{ !failure() && !cancelled() && needs.check-changes.result == 'success' && (needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') }}
  # 其余 extra 阶段任务类似修改 ...

```

# 评论区精华

没有 review 评论，因此无讨论亮点。

- 暂无高价值评论线程

# 风险与影响

- 风险：低风险。调度频率降低可能减少 CI 覆盖的频率，但由于合并了低峰时段，对代码质量影响有限。修复跳过问题的逻辑简单且明确，不会引入新问题。
- 影响：**影响范围**：仅影响 CI 基础设施，不影响任何产品代码。
- 减少 GPU 运行时间消耗，降低 CI 成本。
- 消除定时调度的重复执行和取消浪费。
- 确保定时调度时额外测试套件正确运行。
- 风险标记：CI 覆盖频率略有降低

# 关联脉络

- PR #25465 引入 call-gate 机制 : 该 PR 引入了 call-gate 机制，但未处理 schedule 路径下 gate 被跳过时下游任务的条件判断，引发当前 PR 修复的问题。