Prhub

#34195 [CI] Align rerun-test environment with the test stages

原始 PR 作者 hnyls2002 合并时间 2026-08-12 12:37 文件变更 1 提交数 9 评论 3 代码增减 +14 / -0

执行摘要

对齐 rerun-test 环境变量,补全 JIT 完整网格开关

PR body 指出 rerun-test.yml 只设置了 _pr-test-stage.yml 中 12 个环境变量中的 4 个,导致 /rerun-test 可能通过而 CI 仍失败;尤其 SGLANG_JIT_KERNEL_RUN_FULL_TESTS 未设置,使 27 个夜间内核注册在缩减网格上重跑。

值得快速浏览,了解 CI 环境一致性管理实践;新输入 full_jit_kernel_tests 的默认关闭设计值得借鉴。

讨论亮点

本 PR 没有正式的 review 评论,但提交历史展示了设计收敛过程:从最初的对齐环境,到尝试检测大模型启动预算、增加超时支持,再到最终只保留环境镜象。这种“最小必要变更”的做法值得借鉴,避免将复杂逻辑引入 CI 脚本。

实现拆解

  1. .github/workflows/rerun-test.ymlon.workflow_call.inputs 中新增布尔输入 full_jit_kernel_tests,默认 false,用于控制是否对 jit_kernel 测试使用完整参数网格。
  2. env 部分补全 5 个环境变量:NCCL_NVLS_ENABLE: "0"HF_HUB_DOWNLOAD_TIMEOUT: 300HF_HUB_ETAG_TIMEOUT: 300SGLANG_JIT_KERNEL_RUN_FULL_TESTS(由 inputs.full_jit_kernel_tests && '1' || '0' 动态生成)、IS_H200(根据 inputs.runs_on == '8-gpu-h200' 生成)。
  3. 刻意不设置 SGLANG_PRECISION_* 相关变量,注释说明原因:该测试会推送共享基线,rerun 若持有写令牌可能污染全局比较基准。
  4. 提交历史显示作者曾尝试更大范围的重构(如检测大模型启动预算、为 perf 和 tool-call 路径增加 launch_timeout),但最终放弃,仅保留环境镜像方案,体现出克制的最小变更原则。
文件 模块 状态 重要度
.github/workflows/rerun-test.yml 工作流 modified 3.91

关键源码片段

.github/workflows/rerun-test.yml infrastructure

唯一修改文件,补全环境变量对齐并新增输入

# .github/workflows/rerun-test.yml(局部)
on:
  workflow_call:
    inputs:
      # 新增:是否对 jit_kernel 测试使用完整参数网格
      full_jit_kernel_tests:
        description: "Sweep jit_kernel tests over their full parameter grids, the way scheduled suites do."
        required: false
        type: boolean
        default: falseenv:
  SGLANG_IS_IN_CI: true
  SGLANG_ENABLE_ASYNC_ASSERT: true
  SGLANG_CUDA_COREDUMP: "1"
  SGLANG_JIT_DEEPGEMM_FAST_WARMUP: true  # 与 _pr-test-stage.yml 对齐,确保 rerun 环境一致
  NCCL_NVLS_ENABLE: "0"
  HF_HUB_DOWNLOAD_TIMEOUT: 300
  HF_HUB_ETAG_TIMEOUT: 300  # 完整 JIT 网格默认关闭(匹配每次提交阶段),夜间调度需显式开启
  SGLANG_JIT_KERNEL_RUN_FULL_TESTS: ${{ inputs.full_jit_kernel_tests && '1' || '0' }}  # 标识 H200 运行器,供测试内部分支使用
  IS_H200: ${{ inputs.runs_on == '8-gpu-h200' && '1' || '0' }}  # SGLANG_PRECISION_* 刻意不设置:该测试会推送共享基线,
  # rerun 持有写令牌时可能污染全局比较基线

评论区精华

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

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

风险与影响

环境变量对齐可能改变部分测试在 rerun 下的行为,例如 NCCL_NVLS_ENABLE=0 会影响 NCCL 通信路径,但这与 CI 阶段一致,是预期效果。SGLANG_JIT_KERNEL_RUN_FULL_TESTS 默认关闭,若用户 rerun 夜间完整网格测试失败,需要显式传 full_jit_kernel_tests=true,否则仍会使用缩减网格,存在误用可能。IS_H200 仅对 H200 运行器置位,其他运行器为空字符串,若测试代码未防御性处理可能产生误判,但该变量仅用于分支判断,风险较低。未来 _pr-test-stage.yml 增加新环境变量时,此文件可能再次漂移,需要依赖注释和审查来维持同步。

对开发者:/rerun-test 命令更准确,减少误导;对维护者:新增一个输入参数需了解;对 CI 系统:提高复现一致性,降低调试成本。

CI 环境行为变化 新输入需显式开启 环境变量可能再次漂移

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论