|
name: Build & maybe upload PyPI package |
|
|
|
on: |
|
push: |
|
pull_request: |
|
release: |
|
types: |
|
- published |
|
workflow_dispatch: |
|
|
|
permissions: {} |
|
|
|
env: |
|
FORCE_COLOR: 1 |
|
|
|
jobs: |
|
# Always build & lint package. |
|
build-package: |
|
name: Build & verify package |
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
|
with: |
|
persist-credentials: false |
|
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 |
|
|
|
- uses: hynek/build-and-inspect-python-package@d44ca7d91762de7a7d5436ddae667c6da6d1c3df # v2.18.0 |
|
|
|
# Upload to real PyPI on GitHub Releases. |
|
release-pypi: |
|
name: Publish to PyPI |
|
environment: release-pypi |
|
# Only run for published releases. |
|
if: | |
|
github.repository_owner == 'python' |
|
&& github.event.action == 'published' |
|
runs-on: ubuntu-latest |
|
needs: build-package |
|
|
|
permissions: |
|
id-token: write |
|
|
|
steps: |
|
- name: Download packages built by build-and-inspect-python-package |
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 |
|
with: |
|
name: Packages |
|
path: dist |
|
|
|
- name: Upload package to PyPI |
|
uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1 |