|
name: Build package |
|
|
|
on: |
|
push: |
|
pull_request: |
|
release: |
|
types: |
|
- published |
|
workflow_dispatch: |
|
|
|
permissions: |
|
contents: read |
|
|
|
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: |
|
fetch-depth: 0 |
|
persist-credentials: false |
|
|
|
- uses: hynek/build-and-inspect-python-package@2abe76da66d0a6a4a227101f9348ee855797cfa5 # v3.0.1 |
|
|
|
# Publish to Test PyPI on every commit on main. |
|
release-test-pypi: |
|
name: Publish in-dev package to test.pypi.org |
|
if: | |
|
github.repository_owner == 'python' |
|
&& github.event_name == 'push' |
|
&& github.ref == 'refs/heads/main' |
|
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: Publish to Test PyPI |
|
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 |
|
with: |
|
repository-url: https://test.pypi.org/legacy/ |
|
|
|
# Publish to PyPI on GitHub Releases. |
|
release-pypi: |
|
name: Publish to PyPI |
|
# Only run for published releases. |
|
if: | |
|
github.repository_owner == 'python' |
|
&& github.event.action == 'published' |
|
runs-on: ubuntu-latest |
|
needs: build-package |
|
|
|
environment: |
|
name: pypi |
|
url: >- |
|
https://pypi.org/project/blurb/${{ |
|
github.event.release.tag_name |
|
}} |
|
|
|
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: Publish to PyPI |
|
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 |