Merge pull request #14 from devinslick/dev #46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish Python Package | |
| # Trigger on: | |
| # - pushes to main (publish to PyPI after merge) | |
| # - published GitHub Releases (publish to PyPI for versioned releases) | |
| on: | |
| push: | |
| branches: [main] | |
| release: | |
| types: [published] | |
| permissions: | |
| contents: read | |
| id-token: write | |
| jobs: | |
| build_sdist_and_wheel: | |
| name: Build distribution 📦 | |
| runs-on: ubuntu-latest | |
| outputs: | |
| dist-path: ${{ steps.upload.outputs.artifact-path }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Install build tooling | |
| run: python -m pip install --upgrade pip build | |
| - name: Build distributions | |
| run: python -m build --sdist --wheel | |
| - name: Upload distribution artifacts | |
| id: upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| # Publish from pushes to main OR when a Release is published -> Production PyPI | |
| publish_pypi: | |
| name: Publish to PyPI (main branch or GitHub Release) | |
| runs-on: ubuntu-latest | |
| needs: build_sdist_and_wheel | |
| # Run when: | |
| # - push to main branch, or | |
| # - release published event (keeps existing release-based behavior) | |
| if: | | |
| (github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
| (github.event_name == 'release' && github.event.action == 'published') | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| contents: read | |
| steps: | |
| - name: Download dists | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-package-distributions | |
| path: dist/ | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 |