Open2

Pythonプロジェクトのビルド・リリース作業の自動化を考えてみる

harupongharupong

YouTubeチャンネルを監視して、ライブ配信が始まったら録音してポッドキャスト化するコマンドラインツールをPythonで作っています。ビルドしてPyPIにアップロードする作業の手順を覚えられないので、自動化の方法を検討してみます。

対象のレポジトリ → harupong/ytpodgen

やりたいことは以下のとおりです。

  1. pyproject.tomlに書かれているバージョン番号を編集する
  2. pyproject.tomlをコミットして、バージョン番号を付けたタグを作る
  3. ビルドしてPyPIにアップロードする

プロジェクト管理にはpoetryを使っています。現状の作業手順は以下のとおりです。

poetry version <patch/minor/major>
git add pyproject.toml && git commit -m $(poetry version -s)
git push origin main
gh release create --generate-notes "v$(poetry version -s)"
git fetch --tags origin
poetry publish --build -u ${PYPI_USERNAME} -p ${PYPI_SECRET}
harupongharupong

検討している方法は以下の3つです。

  1. シェルスクリプトで自動化する
  2. Makefileで自動化する
  3. GitHub Actionsで自動化する