name: Publish Python distribution to PyPI
on:
  push:
    tags:
      - '[0-9].[0-9]+.[0-9]+'

jobs:
  build-n-publish:
    name: Build and publish Python distribution to PyPI
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@main
      - name: Setup Python 3.10
        uses: actions/setup-python@v3
        with:
          python-version: "3.10"
      - name: Install pypa/build
        run: >-
          python -m 
          pip install 
          build 
          --user
      - name: Build a binary wheel and a source tarball
        run: >-
          python -m 
          build 
          --sdist
          --wheel
          --outdir dist/
      - name: Publish distribution to Test PyPI
        uses: pypa/gh-action-pypi-publish@release/v1
        if: startsWith(github.ref, 'refs/tags')
        with:
          password: ${{ secrets.TEST_PYPI_API_TOKEN }}
          repository_url: https://test.pypi.org/legacy/
      - name: Publish distribution to PyPI
        if: startsWith(github.ref, 'refs/tags')
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          password: ${{ secrets.PYPI_API_TOKEN }}
