44 push :
55 branches :
66 - main
7+ - automate-release
78 tags :
8- - ' v*.*.*'
9+ - ' *.*.*'
10+
11+ permissions :
12+ contents : read
913
1014jobs :
11- release :
15+ prepare- release :
1216 runs-on : ubuntu-latest
13- needs : build_artifacts # previous jobs that create artifacts
17+ permissions :
18+ contents : read
19+ security-events : write
20+
1421 steps :
15- - name : Checkout
16- uses : actions/checkout@v3
22+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.0
1723
18- - name : Set up Python
19- uses : actions/setup-python@v4
24+ - name : Setup Python
25+ uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
2026 with :
21- python-version : " 3.x "
27+ python-version : ' 3.13 '
2228
2329 - name : Determine release info
2430 id : release_info
2531 run : |
2632 if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then
2733 TAG="latest"
28- RELEASE_NAME="Latest Release"
29- LATEST_FLAG="--latest"
3034 else
3135 TAG="${GITHUB_REF#refs/tags/}"
32- RELEASE_NAME="Release $TAG"
33- LATEST_FLAG=""
3436 fi
3537 echo "tag=$TAG" >> $GITHUB_OUTPUT
36- echo "release_name=$RELEASE_NAME" >> $GITHUB_OUTPUT
37- echo "latest_flag=$LATEST_FLAG" >> $GITHUB_OUTPUT
3838
3939 - name : Update latest tag
40- if : github.ref == 'refs/heads/main '
40+ if : github.ref == 'refs/heads/automate-release '
4141 uses : EndBug/latest-tag@v9
4242 with :
4343 tag-name : latest
@@ -47,18 +47,15 @@ jobs:
4747 - name : Generate release notes
4848 id : notes
4949 run : |
50- notes=$(python create_release_notes.py ${{ steps.release_info.outputs.latest_flag }})
51- echo "release_notes<<EOF" >> $GITHUB_OUTPUT
52- echo "$notes" >> $GITHUB_OUTPUT
53- echo "EOF" >> $GITHUB_OUTPUT
50+ python create_release_notes.py
5451
55- - name : Create/update latest release
56- if : github.ref == 'refs/heads/main'
52+ - name : Create release
5753 uses : softprops/action-gh-release@v1
5854 with :
5955 tag_name : ${{ steps.release_info.outputs.tag }}
60- name : ${{ steps.release_info.outputs.release_name }}
61- body : ${{ steps.notes.outputs. release_notes }}
56+ name : ${{ steps.release_info.outputs.tag }}
57+ body_text : release_notes.txt
6258 draft : true
59+ overwrite : true
6360 env :
6461 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments