File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -29,27 +29,41 @@ jobs:
2929 release :
3030 runs-on : ubuntu-latest
3131 needs : [build]
32+ permissions :
33+ contents : write
34+ outputs :
35+ new_version : ${{ steps.version.outputs.version }}
36+ released : ${{ steps.version.outputs.released }}
3237
3338 steps :
3439 - name : Repo checkout
3540 uses : actions/checkout@v4
36-
37- - name : Bump version and push tag
38- id : bump
39- uses : mathieudutour/github-tag-action@v6.2
4041 with :
41- github_token : ${{ secrets.GITHUB_TOKEN }}
42- release_branches : main
42+ fetch-depth : 0
43+
44+ - name : Resolve version
45+ id : version
46+ run : |
47+ VERSION=$(grep -m1 '^version = ' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
48+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
49+ if git rev-parse "v$VERSION" >/dev/null 2>&1; then
50+ echo "released=false" >> "$GITHUB_OUTPUT"
51+ echo "Tag v$VERSION already exists — skipping release."
52+ else
53+ echo "released=true" >> "$GITHUB_OUTPUT"
54+ fi
4355
44- - name : Release tag
56+ - name : Create release
57+ if : steps.version.outputs.released == 'true'
4558 uses : ncipollo/release-action@v1
4659 with :
47- tag : ${{ steps.bump .outputs.new_tag }}
60+ tag : v ${{ steps.version .outputs.version }}
4861 generateReleaseNotes : true
4962
5063 publish :
5164 runs-on : ubuntu-latest
5265 needs : [release]
66+ if : needs.release.outputs.released == 'true'
5367 permissions :
5468 id-token : write
5569 steps :
You can’t perform that action at this time.
0 commit comments