我已经写过有关如何使用 uv 加快 docker 构建速度的文章。今天,我想快速展示如何更快地构建 Python 项目的 CI。
uv 是一个很好的 pip 替代品,对于大多数项目来说,它可以作为直接替代品。它在解析和安装 python 包方面比 pip 快得多,这对于 CI 管道(或 docker 构建)尤其有用。更快的管道意味着更快的开发周转,这意味着更高的生产力。
如果您继续在管道中安装相同的包,您不妨在管道运行中重复使用 uv 内部使用的缓存。
为此,您必须在运行 uv venv 和 uv pip install 之前以及安装 uv 之后在 azure-pipelines.yml 中插入以下代码:
- bash: | echo "##vso[task.setvariable variable=uv-cache-path;]$(uv cache dir)" - task: Cache@2 displayName: Cache uv inputs: key: uv cache | "$(python.version)" path: $(uv-cache-path)
这会设置一个新的变量 uv-cache-path ,其中包含 uv 缓存的路径,然后它将缓存该路径以供连续的管道运行。我假设您将使用的 python 版本存储在名为 python.version 的变量中。您也可以直接将其替换为您使用的 python 版本。确保保留版本周围的引号,否则任务会将版本解释为路径。
最后,我们可以使用一项新功能在上传之前修剪缓存。这将减少缓存的文件大小,从而使缓存的上传和下载速度更快,从而可能节省您的时间。您应该在管道作业结束之前运行 uv cache prune --ci:
- script: uv cache prune --ci
总之,如果你想让你的Python管道更快,第一步应该是使用uv。您只需将 pip ... 调用替换为 uv pip ... 即可,看看这会使您的管道速度提高多少。
如果您安装了很多需要大量构建步骤的软件包,那么重新使用 uv 缓存可能是值得的。为此,您可以使用 Azure Pipelines 提供的 Cache@2 任务。
以上是Azure Pipelines:uv 缓存的详细内容。更多信息请关注PHP中文网其他相关文章!