执行摘要
修复了内核发布工作流(release-whl-kernel.yml)在push到main分支时构建作业被跳过的问题。通过在四个构建作业的if条件中添加github.event_name == 'push'检查,确保push事件能正确触发构建,而workflow_dispatch事件仍按目标选择运行。此变更仅影响CI/CD流程,风险较低,但需验证测试计划以确保修复有效。
功能与动机
问题背景:内核发布工作流在push到main分支时(例如内核版本更新推送),所有构建作业被跳过,如此运行所示。这阻碍了自动化发布流程,可能需手动触发。
根本原因:构建作业的if条件仅检查github.event.inputs.target,该参数仅在workflow_dispatch事件中填充,在push事件中为null。导致push事件无法满足条件,作业被跳过。
修复目标:确保工作流在push和workflow_dispatch事件中都能正确触发构建作业,提升发布自动化可靠性。
实现拆解
仅修改一个文件:.github/workflows/release-whl-kernel.yml。对四个构建作业的if条件进行相同模式调整:
| 作业名 |
原条件 |
新条件 |
| build-cu129-matrix |
github.event.inputs.target == 'all' || github.event.inputs.target == 'cu129' |
github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'cu129' |
| build-cu130-matrix |
github.event.inputs.target == 'all' || github.event.inputs.target == 'cu130' |
github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'cu130' |
| build-rocm-matrix |
github.event.inputs.target == 'all' || ... |
github.event_name == 'push' || github.event.inputs.target == 'all' || ... |
| build-musa43 |
github.event.inputs.target == 'all' || github.event.inputs.target == 'musa43' |
github.event_name == 'push' || github.event.inputs.target == 'all' || github.event.inputs.target == 'musa43' |
关键逻辑:添加github.event_name == 'push'作为逻辑或的第一项,确保push事件直接满足条件;workflow_dispatch事件仍通过target参数选择作业。
评论区精华
无review评论,PR由作者Fridge003直接合并。从PR body可提取以下要点:
测试计划:
- 验证下次内核版本bump推送能触发所有构建作业而非跳过
- 验证workflow_dispatch事件仍能按目标选择运行特定作业
这反映了作者对修复的验证思路,但尚未看到执行结果。
风险与影响
技术风险:
- 条件逻辑错误:新条件可能意外触发作业(如在非push事件中),但逻辑清晰,风险低。
- CI资源增加:push事件现会触发所有构建作业,可能增加CI负载,但这是预期行为。
- 缺少测试验证:PR body中的测试计划未显示结果,需后续监控。
影响分析:
- 用户:无直接影响,不涉及功能变更。
- 系统:仅影响CI/CD流程,修复后提升发布自动化可靠性。
- 团队:减少手动干预,提高内核发布效率。
关联脉络
此PR是团队持续优化CI流程的一部分,与近期多个CI相关PR形成脉络:
- PR 22010:优化内核版本更新工作流,避免触发夜间测试,简化流程。
- PR 22014:同作者Fridge003调整CI权限,提升操作效率。
- PR 22001:修复工作流重复作业名以加强分支保护。
趋势洞察:团队正系统性地改进GitHub Actions工作流,关注事件触发、权限管理和资源优化,以提升开发效率和系统稳定性。此PR解决了事件类型差异导致的常见陷阱,为类似工作流提供参考模式。
参与讨论