name: Publish to PyPI on: push: tags: - "v*" jobs: publish: name: Build and publish runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/project/${{ github.event.repository.name }}/ steps: - uses: actions/checkout@v3 - name: Ensure this is main branch if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') run: echo "Proceeding with publish" - uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install build tools run: python -m pip install --upgrade build twine - name: Build package run: python -m build - name: Publish to PyPI env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} run: python -m twine upload dist/*