用途:面向 SGLang 仓库的 CI 基础设施层,说明测试如何被调度、门控以及在失败时如何跨阶段中止。测试编写(模板、fixture、注册、模型选择)另见 write-sglang-test 技能。
主要能力与关键文件:主工作流 .github/workflows/pr-test.yml 定义阶段、作业、条件与矩阵;pr-test-extra.yml 需同时具备 run-ci 与 run-ci-extra 标签;pr-gate.yml 负责草稿检查、run-ci 标签、按用户限流。check-pr-test-health 动作实现跨作业快速失败,wait-for-jobs 实现阶段门控,check-maintenance 检查维护模式,ci-labels.cjs 把四个 CI 控制标签解析为调度维度;test/run_suite.py 负责收集、过滤、分区与执行测试。
执行模式:PR 触发按 A→B→C 顺序执行并启用跨作业快速失败与 PR 门控;定时(每 6 小时)并行运行所有阶段,跳过 wait-for-base-* 且关闭 continue-on-error;手动 dispatch 只跑单一目标阶段。四个标签可放宽限制:bypass-fail-fast、parallel-stages、max-concurrency、highest-priority。
失败处理与分区:共四层快速失败(测试方法→文件、文件→套件、作业→作业、阶段→阶段),定时运行全部禁用。套件内由 run_unittest_files() 控制,PR 默认关闭 --continue-on-error,定时运行开启;重试区分不可重试错误(语法、导入、显存不足、段错误等)与可重试的精度/性能断言。大套件用 ci_register.py 的 LPT 启发式分区,套件名由 register_*_ci(stage, runner_config) 生成。
限制:expected_count 必须与矩阵规模一致,增删矩阵项需同步更新 wait 作业;base-c-test-8-gpu-b200 未接入 PR CI,GB200 作业目前注释掉;多模态扩散使用独立 run_suite.py。其余细节暂未提供。