name: Release CI on: push: tags: - "*" jobs: release: runs-on: ubuntu-latest permissions: id-token: write contents: write steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v3 name: Setup UV with: enable-cache: true - name: "Set up Python" uses: actions/setup-python@v5 with: python-version-file: ".python-version" - run: uv sync shell: bash - name: Get Version id: version run: | echo "VERSION=$(uvx pdm show --version)" >> $GITHUB_OUTPUT echo "TAG_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Check Version if: steps.version.outputs.VERSION != steps.version.outputs.TAG_VERSION run: exit 1 - name: Build Package run: uv build - name: Publish Package to PyPI run: uv publish - name: Publish Package to GitHub Release run: gh release create ${{ steps.version.outputs.TAG_NAME }} dist/*.tar.gz dist/*.whl -t "🔖 ${{ steps.version.outputs.TAG_NAME }}" --generate-notes env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}