GitHub ActionsでPyPIにPythonパッケージをpushする(GitHub Release連携でバージョン付け)
上の記事のWorkflowテンプレートをちょっと改良した。
- GitHub Release作成時にリリースタグをパッケージバージョンにしてpush
構成
mypackage/__init__.py
に以下のように開発用のバージョン情報を記述する。
リリース時にGithub Actionsでリリースタグに置換してからPyPIにpushする。
__VERSION__ = '0.0.0'
GitHub Secrets
- PYPI_API_TOKEN
GitHub Workflow .github/workflows/pypi.yml
name: Publish a package to PyPIon:release:types:- createdenv:VERSION: ${{ github.event.release.tag_name != '' && github.event.release.tag_name || '0.0.0' }}jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Setup Pythonuses: actions/setup-python@v2with:python-version: 3.x- name: Install Dependenciesrun: |pip3 install -r requirements.txtpip3 install wheel- name: Replace versionrun: |sed -i "s/__VERSION__ = '0.0.0'/__VERSION__ = '${{ env.VERSION }}'/" mypackage/__init__.py- name: Build Packagerun: python3 setup.py sdist bdist_wheel- name: Publish to PyPIuses: pypa/gh-action-pypi-publish@release/v1with:user: __token__password: ${{ secrets.PYPI_API_TOKEN }}