name: Publish to PyPI on: release: types: [published] jobs: pypi-publish: name: Build and publish to PyPI runs-on: ubuntu-latest permissions: # Mandatory permission for PyPI OIDC Trusted Publishing id-token: write steps: - name: Checkout code uses: actions/checkout@v4 # 1. Install uv - name: Install uv uses: astral-sh/setup-uv@v5 # 2. Build distributions with uv (outputs to dist/) - name: Build package run: uv build # 3. Publish to PyPI using standard PyPA action - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@release/v1