name: Release on: push: tags: ['v*.*.*'] permissions: contents: write id-token: write jobs: build: runs-on: ubuntu-latest outputs: version: ${{ steps.version.outputs.version }} steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v5 with: enable-cache: true - uses: actions/setup-python@v5 with: python-version: '3.13' - run: uv build - id: version run: echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - uses: actions/upload-artifact@v7 with: name: dist path: dist/ publish-pypi: needs: build runs-on: ubuntu-latest environment: pypi steps: - uses: actions/download-artifact@v8 with: name: dist path: dist - uses: pypa/gh-action-pypi-publish@release/v1 release: needs: [build, publish-pypi] runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v8 with: name: dist path: dist - uses: softprops/action-gh-release@v2 with: files: dist/* generate_release_notes: true