はじめに
uvとGitHub Actionsでpythonパッケージの自動更新するテンプレートリポジトリを公開しました。
リポジトリ:https://github.com/jiroshimaya/version-update-workflow-sample
主に以下のようなことができます。
- git tagの自動インクリメント
- 自動テスト、lint、フォーマット
- sphinxによるドキュメントのビルドとGitHub Pages上での公開
- PyPI、TestPyPIでのパッケージ公開
本記事では、このリポジトリを作成した背景と簡単な使い方を紹介します。
背景
Pythonパッケージの開発中に以下の定常作業をなるべく簡単にしたいと思いました。
- PyPIの更新
- ドキュメントの更新
この解決策としてGitHub Actionsを使うことが考えられます。
一方、プライベートの開発では高速なpythonパッケージ管理ツールであるuvをよく使用しています。
この課題を持ち始めた時点では、uvとGitHub Actionsを組み合わせたプラクティスが世の中にあまりない気がしました。
そこで、バージョン管理を自動化したり、ドキュメント更新を自動化する方法を検討してきました。
今回、これらの知見を活かして、再利用しやすい形でまとめなおしたテンプレートリポジトリを作成したので、改めて背景や使い方をまとめました。
使い方
- 本リポジトリをテンプレートとした新規リポジトリを作成してください。
- 作成したリポジトリページのSettingページのSettingsから以下を設定してください。
- GitHub ActionsによるリポジトリのReadとWriteの許可
- GitHub Pagesの作成元をGitHub Actionsに変更
- PyPIやTestPyPIのトークンをシークレットに登録
- ローカルにクローン
- uvが未インストールの場合はインストール
curl -LsSf https://astral.sh/uv/install.sh | sh
-
uv run task init
を実行して初期化
その他、詳細および最新の使い方はリポジトリのREADMEを参照してください。
おわりに
実際に使いながら引き続き改良していこうと思います。