39 lines
881 B
YAML
39 lines
881 B
YAML
name: Publish to PyPI
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
# The Safety Check
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: astral-sh/setup-uv@v5
|
|
- run: uv python install 3.10
|
|
- run: uv sync --all-extras --dev
|
|
- run: uv run pytest -x
|
|
|
|
# The Publisher
|
|
# This ONLY runs if 'test' passes successfully.
|
|
publish:
|
|
needs: test # <--- The Dependency You Requested
|
|
runs-on: ubuntu-latest
|
|
environment: pypi
|
|
permissions:
|
|
id-token: write # IMPORTANT: Required for Trusted Publishing
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
|
|
- name: Build package
|
|
run: uv build
|
|
|
|
- name: Publish to PyPI
|
|
# We use the official PyPA action for OIDC security
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|