Simon Willison's Weblogは2026年7月14日(現地時間)、GitHub Actionsワークフロー内でPythonツールを実行するuvxコマンドに関して、ネットワークリクエストを削減し、キャッシュを効率的に活用する新しい手法が確立されたと発表した。この手法は、ワークフロー開始時に特定の環境変数を設定し、それをGitHub Actionsのキャッシュキーに組み込むことで、ツールの再ダウンロードを防ぎ、実行効率を向上させる。

通常、GitHub Actionsでuvx name-of-toolコマンドを用いてPythonツールを実行すると、ワークフローの実行ごとにPyPIへのネットワークリクエストが発生し、ツールとその依存関係が新たにダウンロードされる。この挙動は、反復的なワークフローにおいて非効率的であるため、開発者らはツールが初回フェッチ後にGitHub Actionsのキャッシュから再利用されることを目指していた。

今回確立されたキャッシュフレンドリーな手法では、ワークフローの冒頭でUV_EXCLUDE_NEWER: 2026-07-12のような環境変数を設定する。この環境変数をGitHub Actionsのキャッシュキーの一部として利用することで、uvx tool-nameコマンドは指定された日付時点での最新バージョンに解決される。これにより、PyPIへの不要なリクエストが抑制され、ワークフローの実行速度と安定性が向上する。

キャッシュを更新し、ツールをアップグレードする際には、UV_EXCLUDE_NEWER環境変数に設定する日付を将来の日付に更新することで対応可能となる。このアプローチは、GitHub ActionsワークフローにおけるPythonツールの利用効率向上に貢献する。また、astral-sh/setup-uvリポジトリでは、PyPIからホイールをパージするのではなく、デフォルトでキャッシュするよう動作を変更することを求める既存のIssueが挙がっており、今回の手法はその要望に応える一助となる可能性を秘めている。


参考: Simon Willison’s Weblog — 2026年7月14日 09:56 (JST)

原文ハイライト

"Using uvx in GitHub Actions in a cache-friendly way"

この記事をシェア
X はてブ LinkedIn