执行摘要
为 CI 取消工作流程添加高优先级 PR 取消选项,优化资源管理,默认跳过高优先级 PR,新增可选功能以减少资源争用。
功能与动机
此变更旨在解决 CI 资源争用时卡住或排队 PR 测试运行的问题,通过添加 include_high_priority 复选框,让管理员能更灵活地控制取消行为,避免高优先级测试意外中断,同时确保带有 bypass-maintenance 标签的 PR 始终不被取消。
实现拆解
- 文件:
.github/workflows/cancel-unfinished-pr-tests.yml
- 关键改动:
- 输入参数: 在工作流的
on.workflow_dispatch.inputs 中添加 include_high_priority 布尔输入,默认值为 false,用于用户界面控制。
- 环境变量传递: 将输入值传递为
INCLUDE_HIGH_PRIORITY 环境变量,在脚本中使用。
- 脚本逻辑更新: 在 bash 脚本中,首先检查 PR 是否带有 'ci maintain' 标签(确保永不取消),然后检查 'high priority' 标签;如果
INCLUDE_HIGH_PRIORITY 为 true,则取消高优先级 PR,否则跳过。
评论区精华
无 review 讨论,变更直接合并。
风险与影响
- 技术风险: 环境变量
INCLUDE_HIGH_PRIORITY 的默认值处理可能依赖字符串比较,存在类型转换错误风险;标签检查逻辑依赖于特定标签名,若标签命名标准化不足,可能影响逻辑正确性;新增复选框可能被误操作,导致重要测试被意外取消。
- 影响评估: 影响范围限于 CI 管理员和测试团队,影响程度较低,因是可选功能且默认行为不变;系统层面,增强了 CI 维护的精细度,有助于在资源紧张时优先保障关键测试。
关联脉络
此 PR 与 PR 21364 紧密相关,后者修复了相同文件中 bypass-maintenance 标签的错误,显示团队在持续优化 CI 取消工作流程。结合近期多个 CI 相关 PR(如 21341、21344),表明 sglang 项目正通过渐进式改进提升测试基础设施的可靠性和效率。
参与讨论