Prhub

#31371 [CI] Remove nightly registrations redundant with scheduled stage runs

原始 PR 作者 hnyls2002 合并时间 2026-07-16 05:12 文件变更 51 提交数 3 评论 1 代码增减 +19 / -36

执行摘要

移除与定时调度冗余的 nightly CI 注册配置

根据 PR body 说明:Tests registered in a PR stage already run in the 2x-daily scheduled full runs,导致同一测试在三种场景下重复运行(PR 阶段 + 定时全量 + nightly),造成资源浪费。本 PR 旨在消除冗余,同时确保必要的高参数覆盖不受影响。

该 PR 已合并,建议其他项目参考此清理思路。对于当前读者,无需特殊关注,但可学习其冗余分类的准则。

讨论亮点

该 PR 未产生 review 讨论(无人工评论)。作者在 issue 评论中只有一行机器人的配额提示。PR 本身意图清晰,无需争议。

实现拆解

  1. 冗余识别:分析 register_cuda_ci 调用,发现 PR stage(如 stage="base-b-kernel-unit")的测试已通过 run_all_tests=true 定时调度覆盖,这些文件中的 nightly=True 注册为第三次重复。
  2. 删除冗余注册:对 32 个文件执行删除操作,移除 nightly=Trueregister_cuda_ci 调用,例如 test/registered/jit/test_tp_qknorm.pytest/registered/jit/diffusion/test_diffusion_modelopt_fp8_scaled_mm.py
  3. 保留必要覆盖:对 19 个使用 get_ci_test_range 或依赖 SGLANG_JIT_KERNEL_RUN_FULL_TESTS 环境变量扩展参数范围的文件,保留 nightly=True 注册,并为部分文件添加注释说明原因(如 test/registered/jit/test_dsv3_router_gemm.py)。AMD 和 NPU 相关的 nightly 注册保持不变。所有更改均在 test/registered/ 目录下的测试文件中。
文件 模块 状态 重要度
test/registered/jit/test_tp_qknorm.py CI 注册 modified 4.1
test/registered/jit/diffusion/test_diffusion_modelopt_fp8_scaled_mm.py CI 注册 modified 3.53
test/registered/jit/test_dsv3_router_gemm.py CI 注册 modified 3.53
test/registered/jit/deepseek_v4/test_c128_v2.py CI 注册 modified 3.18
test/registered/jit/deepseek_v4/test_c4_v2.py CI 注册 modified 3.18
test/registered/jit/deepseek_v4/test_fp4_indexer.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_fused_norm_scale_shift.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_group_norm_silu.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_qknorm_rope.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_qwen_image_modulation.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_varlen_pack_pad.py CI 注册 modified 3.18
test/registered/jit/diffusion/test_varlen_uspattn_equivalence.py CI 注册 modified 3.18

关键源码片段

test/registered/jit/test_tp_qknorm.py test-configuration

示例删除了 nightly 注册,是新规则的代表

# 变更后仅保留 base stage 注册,删除了 nightly 注册
from sglang.test.ci.ci_register import register_cuda_ci# 在 PR 测试和定时调度中运行一次
register_cuda_ci(
    est_time=300,
    stage="base-b-kernel-unit",
    runner_config="8-gpu-h200",
)
test/registered/jit/test_dsv3_router_gemm.py test-configuration

保留了 nightly 并添加注释说明,是另一种情况

# 保留 nightly 注册,并通过注释说明必要性
from sglang.test.ci.ci_register import register_cuda_ciregister_cuda_ci(est_time=37, stage="base-b-kernel-unit", runner_config="1-gpu-large")
# Nightly is not redundant here: it sets SGLANG_JIT_KERNEL_RUN_FULL_TESTS=1
# to expand get_ci_test_range sweeps.
register_cuda_ci(est_time=148, suite="nightly-kernel-1-gpu", nightly=True)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

主要风险:错误地删除必要覆盖可能导致回归未检测到。但作者通过筛选条件(仅删除完全重复的 nightlies;保留使用 get_ci_test_rangeSGLANG_JIT_KERNEL_RUN_FULL_TESTS 的文件;保留 AMD/NPU 注册)降低了风险。此外,PR 在合并前已通过自身 CI,进一步验证了改动安全。潜在风险:未来添加新测试时若不了解此清理规则,可能错误添加冗余 nightly,但注释和代码规范可缓解。

对用户:无直接影响。对开发者:CI 运行次数减少,排队时间缩短。对系统:节省 CI runner 资源(GPU 时间),尤其 8-GPU H200 等大型 runner。影响范围:中等,涉及 51 个测试文件,但均为 CI 配置变更,无功能影响。

CI 冗余运行 测试覆盖减少

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论