name: Release on: push: tags: - 'v*' permissions: contents: write id-token: write # For trusted publishing to PyPI jobs: release: name: Build and Release runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v4 with: version: "latest" - name: Set up Python run: uv python install 3.12 - name: Install dependencies run: uv sync - name: Build package run: uv build - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: files: dist/* generate_release_notes: true draft: false - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: # Uses trusted publishing - no API tokens needed! # Configure at: https://pypi.org/manage/account/publishing/ skip-existing: true