11name : Releases
22
33on :
4- push :
5- branches :
6- - main
7- - automate-release
8- tags :
9- - ' *.*.*'
4+ workflow_call :
105
116permissions :
127 contents : read
@@ -18,23 +13,27 @@ jobs:
1813 contents : write
1914 security-events : write
2015
21- steps :
22- - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.0
16+ outputs :
17+ release_id : ${{ steps.release_info.outputs.tag }}
2318
24- - name : Setup Python
25- uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1 .0
19+ steps :
20+ - uses : step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14 .0
2621 with :
27- python-version : ' 3.13'
22+ egress-policy : audit
23+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.0
24+ - uses : ./.github/workflows/setup-python.yml
2825
2926 - name : Determine release info
3027 id : release_info
3128 run : |
32- if [[ "${GITHUB_REF}" == "refs/heads/automate-release" ]]; then
33- TAG="latest"
34- else
35- TAG="${GITHUB_REF#refs/tags/}"
36- fi
37- echo "tag=$TAG" >> $GITHUB_OUTPUT
29+ if [[ "${GITHUB_REF}" == "refs/heads/automate-release" ]]; then
30+ TAG="latest"
31+ elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then
32+ TAG="${GITHUB_REF#refs/tags/}"
33+ else
34+ TAG=""
35+ fi
36+ echo "tag=$TAG" >> $GITHUB_OUTPUT
3837
3938 - name : Update latest tag
4039 if : github.ref == 'refs/heads/automate-release'
@@ -45,11 +44,13 @@ jobs:
4544 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
4645
4746 - name : Generate release notes
47+ if : ${{ steps.release_info.outputs.tag != '' }}
4848 id : notes
4949 run : |
5050 python script/create_release_notes.py
5151
5252 - name : Create release
53+ if : ${{ steps.release_info.outputs.tag != '' }}
5354 uses : softprops/action-gh-release@5122b4edc95f85501a71628a57dc180a03ec7588 # v2.5.0
5455 with :
5556 tag_name : ${{ steps.release_info.outputs.tag }}
0 commit comments