在 GitHub Actions 中以缓存友好的方式使用 uvx
Using uvx in GitHub Actions in a cache-friendly way
摘要
在 GitHub Actions 工作流中,通过设置环境变量 `UV_EXCLUDE_NEWER: "2026-07-12"` 并将其作为缓存键的一部分,实现了对 `uvx tool-name` 命令的缓存友好使用。该方法使每次运行都解析为指定日期时的最新版本,通过更新日期可使缓存失效并升级工具,从而避免每次工作流运行时都从 PyPI 重新下载工具及其依赖。
TIL:在 GitHub Actions 中以缓存友好的方式使用 uvx
我终于找到了一个在 GitHub Actions 工作流中以缓存友好的方式使用 uvx tool-name 的配方,我很喜欢。诀窍是在工作流开始时设置一个 UV_EXCLUDE_NEWER: "2026-07-12" 环境变量,然后将其作为 GitHub Actions 缓存键的一部分。这意味着任何 uvx tool-name 命令都会解析为该日期时的最新版本,你可以通过将日期往后推来使缓存失效并升级工具。我的目标是,在 GitHub Actions 中使用 Python 工具时,不必每次运行工作流都去 PyPI 下载工具及其依赖的新副本。
标签:packaging, pypi, python, github-actions, uv
译自 Simon Willison · 博客 · 录于 二〇二六年七月十四日