name: Build and upload to PyPI on: push: branches: [ master ] tags: - '**' pull_request: branches: [ master ] workflow_dispatch: jobs: build_sdist: name: Build source distribution runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build sdist run: pipx run build --sdist - uses: actions/upload-artifact@v3 with: path: dist/*.tar.gz retention-days: 5 upload_test_pypi: needs: [build_sdist] runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') steps: - uses: actions/download-artifact@v3 with: name: artifact path: dist - name: Publish package to TestPyPI uses: pypa/gh-action-pypi-publish@release/v1.5 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} repository_url: https://test.pypi.org/legacy/ upload_pypi: needs: [build_sdist] runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') steps: - uses: actions/download-artifact@v3 with: name: artifact path: dist - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@release/v1.5 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }}