执行摘要
本PR通过引入UV包管理工具替换传统pip安装,将NPU CI环境中的依赖安装时间从4分钟缩短至1分40秒,显著提升CI测试效率,改动局限于NPU相关的工作流和脚本,风险可控且影响直接。
功能与动机
PR的动机源于提升CI流水线性能,缩短依赖安装时间以加速NPU测试执行。从PR标题和描述可见,目标是将安装时间从4分钟减少到1分40秒,从而提高开发迭代效率。
实现拆解
实现分为两个核心部分:
- CI工作流配置:在
.github/workflows/full-test-npu.yml、nightly-test-npu.yml和pr-test-npu.yml文件中,为多个job添加UV_INDEX_URL环境变量,指向内部缓存服务,以优化包索引源。
- 安装脚本重构:修改
scripts/ci/npu/npu_ci_install_dependency.sh,引入UV_PIP_INSTALL命令替代原有的pip install,并设置关键环境变量:
UV_NO_CACHE=true:禁用缓存以加速安装。
UV_SYSTEM_PYTHON=true:使用系统Python。
UV_INDEX_STRATEGY=unsafe-best-match:优化包解析策略。
- 同时确保uv工具通过
${PIP_INSTALL} uv安装,保持脚本一致性。
评论区精华
review讨论中,gemini-code-assist[bot]提出两个设计改进点:
"使用${PIP_INSTALL}而非直接pip来安装uv,以确保安装一致性。"
"避免硬编码UV_INDEX_URL,建议用环境变量覆盖以提高脚本可移植性。"
作者tfhddd迅速回复"fixed"并修改代码,体现了对代码可维护性的重视,讨论以解决告终。
风险与影响
- 风险分析:主要风险包括uv工具的新依赖可能引入兼容性问题,但已在CI环境中测试;
UV_INDEX_URL默认值仍指向内部服务,在其他环境需手动配置;包解析逻辑变更可能影响稳定性,但通过策略设置缓解。整体风险低,限于CI基础设施。
- 影响分析:影响范围仅限于NPU CI工作流,不涉及核心代码。安装速度提升约60%,直接减少CI执行时间,间接加速NPU功能开发和测试,对终端用户无直接影响。
关联脉络
从近期历史PR看,仓库持续优化CI基础设施,如PR 22388通过替换artifact机制提升效率,PR 22382升级依赖版本。本PR延续了这一趋势,专注于NPU测试环境的安装速度优化,反映了团队对开发体验和测试效率的重视。
参与讨论