diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml new file mode 100644 index 0000000..29343be --- /dev/null +++ b/.github/workflows/Release.yml @@ -0,0 +1,44 @@ +name: Release + +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@v2 + name: Setup UV + with: + enable-cache: true + + - run: uv sync -p 3.12 + 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: Publish Package to PyPI + run: | + uv build + 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 }}