Github Actionsでpypiのパッケージを発行
なぜgithub actionsで発行できると楽か
自作ライブラリ開発しているとすると普通ならコーディング、setup.pyを記述、pypiにtwineでアップロードという流れになります。 blog.amedama.jp
ただこのpypiへのアップロードが意外に面倒くさい。。!毎回pypiアカウントの認証などしなくてはならず、ライブラリ発行が億劫になるため出来るなら自動化したいものです。
Github actionsを使うとgithub上でリリースを追加することで自動的にpypiにアップロードすることができ非常に便利だったのでその方法を記述します。
やってみた
他レポの見様見真似でやってみた。
Pypiに書いてあるフローは以下であるが、微妙に今回参考にした設定とは異なる。
今回用いたライブラリは自分で開発しているkaggle用TTAライブラリであるodachです。
Github actionsの設定ファイルを追加
レポ下に.github/workflows/python-publish.yml
を追加します。
# https://github.com/kentaroy47/ODA-Object-Detection-ttA/blob/main/.github/workflows/python-publish.yml name: Upload Python Package on: release: types: [created] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies run: | python -m pip install --upgrade pip pip install setuptools wheel twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | # ソース配布型 python setup.py sdist bdist_wheel twine upload dist/*
Pypiの認証情報をSecretsに追加
レポジトリのSettings以下のSecretsにpypiの認証情報を追加します。
PYPI.PASSWORD
とPIPY.USER_NAME
にそれぞれpypiのユーザ、パスワードを格納します。secretsの情報は管理者しか見られないため安心です。
Githubにリリースを追加
ここまででgithub actionsの準備は整いました。releaseを追加すればactionが走り、その結果をActions以下で確認できます。
無事に走ればpypiにもパッケージが追加されているのを確認できます。