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,36 @@ jobs:
1813 contents : write
1914 security-events : write
2015
16+ outputs :
17+ release_id : ${{ steps.release_info.outputs.tag }}
18+
2119 steps :
20+ - uses : step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
21+ with :
22+ egress-policy : audit
2223 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.0
23-
24- - name : Setup Python
25- uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
24+ - uses : actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
2625 with :
2726 python-version : ' 3.13'
2827
2928 - name : Determine release info
3029 id : release_info
3130 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
31+ if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
32+ BRANCH="${GITHUB_HEAD_REF}"
33+ else
34+ BRANCH="${GITHUB_REF#refs/heads/}"
35+ fi
36+
37+ if [[ "$BRANCH" == "main" || "$BRANCH" == "automate-release" ]]; then
38+ TAG="latest"
39+ elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then
40+ TAG="${GITHUB_REF#refs/tags/}"
41+ else
42+ TAG=""
43+ fi
44+ echo "tag=$TAG"
45+ echo "tag=$TAG" >> $GITHUB_OUTPUT
3846
3947 - name : Update latest tag
4048 if : github.ref == 'refs/heads/automate-release'
@@ -45,11 +53,13 @@ jobs:
4553 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
4654
4755 - name : Generate release notes
56+ if : ${{ steps.release_info.outputs.tag != '' }}
4857 id : notes
4958 run : |
5059 python script/create_release_notes.py
5160
5261 - name : Create release
62+ if : ${{ steps.release_info.outputs.tag != '' }}
5363 uses : softprops/action-gh-release@5122b4edc95f85501a71628a57dc180a03ec7588 # v2.5.0
5464 with :
5565 tag_name : ${{ steps.release_info.outputs.tag }}
0 commit comments