返回资源列表

Simon Willison's TILs · Simon Willison

Using uvx in GitHub Actions in a cache-friendly way

Using uvx in GitHub Actions in a cache-friendly way是Simon Willison's TILs的免费实践教程(en)。前置条件:需要了解 GitHub Actions 的基本概念(workflow、steps、env、cache)以及 Python 包安装工具 uv/uvx 的基本用法。

掌握在 GitHub Actions 中用 uvx 运行 Python 工具并借助缓存避免每次访问 PyPI 的写法。

打开官方课程
难度
见前置条件
类型
博客与教程 · 实践教程
语言
en
规模
1 个课节
内容费用
免费
动手
打开即可学习

使用限制

浏览学习材料无需账号;如要实际运行示例 workflow,需要自己的 GitHub 仓库。

练习与作业
GitHub 账号与可运行 Actions 的仓库(用于实际试跑 workflow)

学完你能

  • 理解 uvx 在 GitHub Actions 中每次运行会重新从 PyPI 拉取工具的问题
  • 用 UV_EXCLUDE_NEWER 日期固定工具版本,并把它作为缓存键的一部分
  • 配置 astral-sh/setup-uv 的 enable-cache、cache-dependency-glob、cache-suffix、prune-cache 参数
  • 在缓存命中时设置 UV_OFFLINE=1,强制验证工具确实来自缓存
  • 通过只改一处日期来主动失效缓存
  • 理解作者选择保留预构建 wheel 缓存与 uv 官方 CI 建议之间的差异

适合你吗

适合

适合已使用 GitHub Actions 和 Python 工具链、想让 CI 运行更快且可复现的开发者参考。

暂不适合

不适合零基础读者,也不覆盖 uv 或 GitHub Actions 的系统入门内容。

需要先会

需要了解 GitHub Actions 的基本概念(workflow、steps、env、cache)以及 Python 包安装工具 uv/uvx 的基本用法。

课程特点

内容侧重
侧重实践应用
练习与项目
在自己的仓库里把示例 workflow 跑两次,对比首次安装与缓存命中后的耗时,并尝试改动 UV_EXCLUDE_NEWER 日期观察缓存失效。
学习时长
1 个课节原站未给出统一学习时长;实际用时取决于已有基础。
内容费用
免费节选内可直接读到全部正文与示例 workflow,无付费墙或登录提示。

内容覆盖

  • 动机:避免每次 workflow 运行都向 PyPI 请求工具
  • 以往用 pyproject.toml / requirements.txt 哈希做缓存键的局限
  • UV_EXCLUDE_NEWER 环境变量与 uvx --exclude-newer 的等价作用
  • 完整 workflow 示例(setup-uv 与缓存参数)
  • enable-cache、cache-dependency-glob、cache-suffix、prune-cache 各参数说明
  • 与 uv 官方 CI 缓存建议的差异及作者取舍
  • UV_OFFLINE=1:缓存命中时强制只使用缓存
  • 新增工具未更新日期会报错的机制

常见问题

免费吗?

免费:节选内可直接读到全部正文与示例 workflow,无付费墙或登录提示。实践无额外费用:原文未提及需要付费云服务或 API;练习依赖 GitHub Actions 的免费额度,网页未说明具体费用。

需要什么基础?

需要了解 GitHub Actions 的基本概念(workflow、steps、env、cache)以及 Python 包安装工具 uv/uvx 的基本用法。软件、账号与硬件:GitHub 账号与一个可运行 Actions 的仓库;无需付费服务。

有中文吗?

本站记录的语言是en;是否有中文字幕或译本本站未核实,请以原站为准。

怎么开始?

从原始资源入口开始:https://til.simonwillison.net/github-actions/uvx-github-actions-cache。打开原文即可,无需安装软件。开课提示词尚未完整验证。练习与作业需要自备:GitHub 账号与可运行 Actions 的仓库(用于实际试跑 workflow)。

来源与使用须知

收录时间
本站首次收录 2026-10-23
指南参考

版权与转载

  • 课程材料未标明许可:仅供个人学习,转载、修改或商用前请先联系原作者。
  • 本站只提供原始链接和学习指南,不转载、不镜像课程材料;引用时请注明原作者与出处。