上の記事の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 PyPI
on:
release:
types:
- created
env:
VERSION: ${{ github.event.release.tag_name != '' && github.event.release.tag_name || '0.0.0' }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install Dependencies
run: |
pip3 install -r requirements.txt
pip3 install wheel
- name: Replace version
run: |
sed -i "s/__VERSION__ = '0.0.0'/__VERSION__ = '${{ env.VERSION }}'/" mypackage/__init__.py
- name: Build Package
run: python3 setup.py sdist bdist_wheel
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}