1717 required : false
1818 default : ' '
1919
20+ schedule :
21+ - cron : ' 10 7 * * 1'
22+ - cron : ' 10 8 * * 1'
23+
2024concurrency : trigger-release
2125
2226env :
4448 fi
4549
4650 - name : Checkout repository
47- uses : actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
51+ uses : actions/checkout@v4
4852 with :
4953 token : ${{ secrets.WORKFLOW_USER_GH_TOKEN }}
5054
@@ -60,12 +64,31 @@ jobs:
6064 with :
6165 prefix : ${{ env.TAG_PREFIX }}
6266
67+ - name : Get number of commits since current release
68+ id : commits
69+ if : github.event_name == 'schedule'
70+ run : |
71+ git fetch --tags
72+ echo "count=$(git rev-list --count --no-merges ${{ steps.get_current_release.outputs.tag }}..HEAD --before=1.hour)" >> $GITHUB_OUTPUT
73+
6374 - name : Determine target release
6475 id : get_target_release
6576 run : |
77+ create_release=true
6678 desired_version=${{ inputs.desired-version }}
6779 current_version=${{ steps.get_current_release.outputs.version }}
68- version_bump=${{ inputs.version-bump }}
80+
81+ if "${{ github.event_name == 'schedule' }}"; then
82+ version_bump=patch
83+ commits_count=${{ steps.commits.outputs.count }}
84+
85+ if [[ $commits_count -eq 0 ]]; then
86+ create_release=false
87+ >&2 echo "There are no commits since latest release found, nothing to do."
88+ fi
89+ else
90+ version_bump=${{ inputs.version-bump }}
91+ fi
6992
7093 if [ -z "$desired_version" ]; then
7194 case $version_bump in
@@ -103,17 +126,21 @@ jobs:
103126
104127 echo "Target version: $version"
105128 echo "Target tag: $tag"
129+ echo "Create release: $create_release"
106130 echo "version=$version" >> $GITHUB_OUTPUT
107131 echo "tag=$tag" >> $GITHUB_OUTPUT
132+ echo "create_release=$create_release" >> $GITHUB_OUTPUT
108133
109134 - name : Determine target commit
135+ if : steps.get_target_release.outputs.create_release == 'true'
110136 id : get_target_commit
111137 run : |
112138 sha=$(git rev-parse HEAD)
113139 echo "Target commit: $sha"
114140 echo "sha=$sha" >> $GITHUB_OUTPUT
115141
116142 - name : Wait for check suites to complete
143+ if : steps.get_target_release.outputs.create_release == 'true'
117144 uses : sap-contributions/await-check-suites@master
118145 with :
119146 ref : ${{ steps.get_target_commit.outputs.sha }}
@@ -123,12 +150,9 @@ jobs:
123150 appSlugFilter : github-actions
124151
125152 - name : Create Release
126- uses : softprops/action-gh-release@v1
127- with :
128- tag_name : ${{ steps.get_target_release.outputs.tag }}
129- draft : false
130- prerelease : false
131- target_commitish : ${{ steps.get_target_commit.outputs.sha }}
132- token : ${{ secrets.WORKFLOW_USER_GH_TOKEN }}
133- generate_release_notes : false
134-
153+ if : steps.get_target_release.outputs.create_release == 'true'
154+ env :
155+ GH_TOKEN : ${{ secrets.WORKFLOW_USER_GH_TOKEN }}
156+ run : |
157+ gh release create ${{ steps.get_target_release.outputs.tag }} \
158+ --target "${{ steps.get_target_commit.outputs.sha }}"
0 commit comments