执行摘要
CI 定时调度从 3 次改为 2 次,修复额外测试跳过问题
定时 CI 运行(每天3次,每8小时一次)与运行时长相接近(约6小时),新调度触发时前一次仍在运行,导致被取消(30%的取消率)和重试(33%的重试率),浪费GPU资源。同时,由于 call-gate 在调度路径上被跳过,下游任务因条件检查失败而跳过整个额外测试套件。
值得合并,属于 CI 运维优化。建议关注合并后的 CI 运行情况,确认取消率下降。
没有 review 评论,因此无讨论亮点。
定时 CI 运行(每天3次,每8小时一次)与运行时长相接近(约6小时),新调度触发时前一次仍在运行,导致被取消(30%的取消率)和重试(33%的重试率),浪费GPU资源。同时,由于 call-gate 在调度路径上被跳过,下游任务因条件检查失败而跳过整个额外测试套件。
值得合并,属于 CI 运维优化。建议关注合并后的 CI 运行情况,确认取消率下降。
没有 review 评论,因此无讨论亮点。
.github/workflows/pr-test.yml 中,将 cron 表达式从 '0 1,9,17 * * *' 改为 '0 11,23 * * *',每天2次,间隔12小时,避免与前一次运行重叠,并且选在 PR 提交较少的低峰时段。.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 工作流 | modified | 4.52 |
.github/workflows/pr-test.yml |
CI 工作流 | modified | 2.78 |
.github/workflows/pr-test-extra.yml
infrastructure
修复 call-gate 在调度路径下跳过导至额外测试套件整体跳过的问题,修改了 8 个下游任务的 if 条件。
# .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 阶段任务类似修改 ...
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
低风险。调度频率降低可能减少 CI 覆盖的频率,但由于合并了低峰时段,对代码质量影响有限。修复跳过问题的逻辑简单且明确,不会引入新问题。
影响范围:仅影响 CI 基础设施,不影响任何产品代码。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论