Prhub

#6535 [ci] chore: migrate pip→uv in all Ascend CI workflows

原始 PR 作者 KadenZhang3321 合并时间 2026-06-02 17:34 文件变更 8 提交数 1 评论 2 代码增减 +279 / -167

执行摘要

Ascend CI 工作流中 pip 迁移为 uv pip

PR 正文说明替换 pip/pip3 install/list 调用为 uv pip 等价调用,通过配置内部集群 PyPI 缓存服务和华为云 Ascend 仓库作为 fallback,并设置 unsafe-best-match 策略,目的是加速 Ascend CI 工作流中的包安装过程。

该 PR 结构清晰,更改模式可复制,适合作为其他 CI 环境迁移 pip→uv 的参考。建议关注 uv 配置参数(如 INDEX_STRATEGY、INSECURE_HOST)的选择逻辑,后续可考虑统一推广到更多工作流。

讨论亮点

无有效 review 讨论。PR 有一条 CLA 检查评论和一条 Gemini 自动评论表示无法审查该文件类型。审核人 wucong25 直接批准,未留下评论。

实现拆解

  1. 替换包管理命令:在 8 个工作流(e2e_ascend.yml, e2e_fully_async_policy_ascend.yml, e2e_one_step_off_policy_ascend.yml, e2e_ppo_trainer_megatron_sglang_ascend.yml, e2e_ppo_trainer_megatron_sglang_2_ascend.yml, reward_model_sglang_ascend.yml, sgl_ascend.yml, nightly_ascend.yml)的每个 job 中,将 pip list 替换为 uv pip list,将 pip install 替换为 uv pip install(保留参数如 --no-deps, --no-build-isolation, -e .)。
  2. 添加 UV 环境变量:在每个 job 的 env: 块中新增以下变量:
    • UV_EXTRA_INDEX_URL:指向华为云 Ascend PyPI 仓库(fallback)。
    • UV_INDEX_STRATEGY: unsafe-best-match:允许在不安全的索引中优先选择最佳匹配。
    • UV_INSECURE_HOST 白名单:内部缓存服务域名。
    • UV_HTTP_TIMEOUT: 120、UV_NO_CACHE: "1"、UV_SYSTEM_PYTHON: "1" 等设置。
  3. 安装 uv 步骤:在每个 job 的开头新增 - name: Install uv 步骤,通过 pip install uv 安装 uv 工具。
  4. 保持原有环境变量:保留原有的 HF_HUB_ENABLE_HF_TRANSFER 等环境变量。
  5. 不涉及 a2b3 工作流:PR 明确排除 a2b3 机型的工作流,因其已有基础设施级 pip 源配置。
文件 模块 状态 重要度
.github/workflows/sgl_ascend.yml CI 配置 modified 6.04
.github/workflows/e2e_ascend.yml CI 配置 modified 4.46
.github/workflows/nightly_ascend.yml CI 配置 modified 4.34
.github/workflows/reward_model_sglang_ascend.yml CI 配置 modified 4.34
.github/workflows/e2e_fully_async_policy_ascend.yml CI 配置 modified 4.23
.github/workflows/e2e_one_step_off_policy_ascend.yml CI 配置 modified 4.23
.github/workflows/e2e_ppo_trainer_megatron_sglang_ascend.yml CI 配置 modified 4.05
.github/workflows/e2e_ppo_trainer_megatron_sglang_2_ascend.yml CI 配置 modified 3.92

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

评论区精华

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

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

风险与影响

本次变更为纯 CI 配置修改,风险较低。但 uv 与 pip 在依赖解析策略上存在差异,unsafe-best-match 策略可能导致与之前不同的包版本被安装,从而引发兼容性问题。不过,升级后的缓存配置使用内部服务和华为云官方仓库,且保留了 --no-deps 和 --no-build-isolation 参数,显著降低了依赖冲突风险。建议在合并后手动触发一次 CI 流程验证各工作流能够成功完成包安装。

影响范围仅限于 8 个使用 a3 自托管 runner 的 Ascend CI 工作流。对用户、产品代码或公共 API 无直接影响。团队收益是通过使用 uv 和内部缓存服务可加速包安装,减少 CI 等待时间。运维方面,新增的 UV 环境变量需要在 CI 网络中保证缓存服务域名可访问。

CI 工具替换 依赖解析行为变化 内部缓存服务依赖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论