Skip already-published files when the PyPI publish workflow re-runs #1
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 to PyPI | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| permissions: | |
| contents: read | |
| jobs: | |
| build-and-publish: | |
| name: Build and publish to PyPI | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/project/capskip/ | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install build tools | |
| run: python -m pip install --upgrade pip build | |
| - name: Build package | |
| run: python -m build | |
| - name: Publish to PyPI | |
| # Uses PyPI Trusted Publishing (OIDC) via the id-token permission above — | |
| # no API token or secret required. | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| # Don't fail if this version's files are already on PyPI (e.g. a re-run tag). | |
| skip-existing: true |