Fixed optional location payload and private key usage #25
Workflow file for this run
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 any branch (we'll publish to TestPyPI for non-main branches and to PyPI for main) | |
| # - published GitHub Releases (keep existing behavior for canonical releases) | |
| on: | |
| push: | |
| branches: ["**"] | |
| 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 non-main branches -> TestPyPI | |
| publish_testpypi: | |
| name: Publish to TestPyPI (branches except main) | |
| runs-on: ubuntu-latest | |
| needs: build_sdist_and_wheel | |
| # Only run for pushes (not releases) and only for branches that are NOT main | |
| if: | | |
| github.event_name == 'push' && | |
| startsWith(github.ref, 'refs/heads/') && | |
| github.ref != 'refs/heads/main' | |
| environment: testpypi | |
| 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 TestPyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| # repository-url directs upload to TestPyPI | |
| repository-url: https://test.pypi.org/legacy/ | |
| # 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 |