name: PyPI Release

# https://help.github.com/en/actions/reference/events-that-trigger-workflows
on: # Trigger the workflow on push or pull request, but only for the main branch
  push:
    branches: [main]
  release:
    types: [published]

# based on https://github.com/pypa/gh-action-pypi-publish

jobs:
  releasing-pypi:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-python@v6
        with:
          python-version: "3.10"

      - name: Install dependencies
        run: python -m pip install --user --upgrade setuptools wheel packaging
      - name: Build
        run: python setup.py sdist bdist_wheel

      # We do this, since failures on test.pypi aren't that bad
      - name: Publish to Test PyPI
        if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
        uses: pypa/gh-action-pypi-publish@v1.13.0
        with:
          user: __token__
          password: ${{ secrets.test_pypi_password }}
          repository_url: https://test.pypi.org/legacy/

      - name: Publish distribution 📦 to PyPI
        if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
        uses: pypa/gh-action-pypi-publish@v1.13.0
        with:
          user: __token__
          password: ${{ secrets.pypi_password }}
