Prhub

#22018 [Workflow] Fix kernel release build failures for aarch64 and wheel renaming

原始 PR 作者 Fridge003 合并时间 2026-04-03 18:23 文件变更 2 提交数 11 评论 3 代码增减 +14 / -5

执行摘要

修复 aarch64 内核发布构建失败,优化 wheel 重命名脚本的 Python 路径。

PR body 指出 cu129 和 cu130 aarch64 构建因 "/usr/bin/python3: No module named wheel" 错误和 Docker 缓存陈旧而失败,具体引用 Actions 运行链接 https://github.com/sgl-project/sglang/actions/runs/23935584011,旨在修复这些问题以确保内核发布工作流稳定运行。

建议工程师在修改构建脚本时关注此类缓存管理和路径问题,此 PR 提供了处理 Docker buildx 构建器状态和 Python 环境隔离的实用模式,值得参考以提升 CI 健壮性。

讨论亮点

review 中仅有一个讨论线程:gemini-code-assist[bot] 建议在 build.sh 中引用 PYTHON 变量赋值(如 PYTHON="${PYTHON_ROOT_PATH}/bin/python")以防止路径包含空格时的单词拆分问题,作者 Fridge003 采纳此建议。无其他争议或未解决疑虑。

实现拆解

实现分为两部分:

1) 在 sgl-kernel/build.sh 中添加 RESET_BUILDER 逻辑(当设为 1 时重置 Docker buildx 构建器以清除内部状态),修改缓存参数引用方式,并传递 PYTHON 变量给 rename_wheels.sh;
2) 在 sgl-kernel/rename_wheels.sh 中使用 ${PYTHON:-python3} 调用正确的 Python 解释器(避免依赖系统 Python)。此外,在 .github/workflows/release-whl-kernel.yml 中设置 USE_CCACHE=0 以禁用编译器缓存。

文件 模块 状态 重要度
sgl-kernel/build.sh sgl-kernel/build modified -
sgl-kernel/rename_wheels.sh sgl-kernel/scripts modified -

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

引用 PYTHON 变量赋值以防止路径空格问题 style

gemini-code-assist[bot] 建议在 build.sh 中引用 PYTHON 变量赋值(如 PYTHON="${PYTHON_ROOT_PATH}/bin/python"),以避免 PYTHON_ROOT_PATH 包含空格时导致单词拆分,提升脚本健壮性。

结论:作者采纳建议,在最终代码中添加引号。 · 已解决

风险与影响

技术风险包括:

1) RESET_BUILDER 标志可能增加构建时间,因每次重置需重新创建构建器;
2) 脚本对 PYTHON_ROOT_PATH 的依赖需确保构建环境一致性,否则可能导致路径错误;
3) 禁用缓存(USE_CCACHE=0)可能影响后续构建性能,但针对发布工作流为必要措施以避免陈旧缓存。

影响范围主要限于 CI 工作流:确保 aarch64 架构的内核发布构建成功,提升跨平台支持;对用户无直接影响,但影响开发团队的内核发布流程可靠性。影响程度中等,修复了特定架构的构建阻断问题。

缓存管理复杂 跨平台兼容性风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论