# SPDX-FileCopyrightText: none
# SPDX-License-Identifier: CC0-1.0

name: Publish Python distributions to PyPI and TestPyPI

on:
  pull_request:
  push:
    branches:
      - main
      - master
    tags:
      - 0.*
      - 1.*

jobs:
  build-n-publish:
    name: Build and publish Python distributions to PyPI and TestPyPI
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master

      - name: Get history and tags for SCM versioning to work
        run: |
          git fetch --prune --unshallow
          git fetch --depth=1 origin +refs/tags/*:refs/tags/*

      - name: Set up Python 3.10
        uses: actions/setup-python@v3
        with:
          python-version: "3.10"

      - name: Install pypa/build
        run: python -m pip install build twine --user

      - name: Build binary wheel and a source tarball
        run: python -m build --sdist --wheel --outdir dist/ .

      - name: Check wheels and source tarballs
        run: python -m twine check dist/*

# The project name os blocked by an other test project
#      - name: Publish distribution to Test PyPI
#        if: >-
#          github.event_name == 'push' &&
#          github.ref == 'refs/heads/main'
#        uses: pypa/gh-action-pypi-publish@release/v1
#        with:
#          password: ${{ secrets.TEST_PYPI_API_TOKEN }}
#          repository_url: https://test.pypi.org/legacy/
#          skip-existing: true
#
      - name: Publish distribution to PyPI
        if: >-
          github.event_name == 'push' &&
          startsWith(github.ref, 'refs/tags')
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          password: ${{ secrets.PYPI_API_TOKEN }}