name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI

on:
  pull_request:
  push:
    tags:
      - '*'

jobs:
  build-n-publish:
    name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
    runs-on: ubuntu-latest
    if: ((github.event_name == 'push' && startsWith(github.ref, 'refs/tags')) || contains(github.event.pull_request.labels.*.name, 'Build wheels'))

    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: 0
    - uses: actions/setup-python@v2
      with:
        python-version: 3.8

    - name: Install python-build and twine
      run: python -m pip install build twine

    - name: Build package
      run: python -m build --sdist --wheel .

    - name: List result
      run: ls -l dist

    - name: Check long_description
      run: python -m twine check dist/*

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