17
17
required : false
18
18
default : ' '
19
19
20
+ schedule :
21
+ - cron : ' 10 7 * * 1'
22
+ - cron : ' 10 8 * * 1'
23
+
20
24
concurrency : trigger-release
21
25
22
26
env :
44
48
fi
45
49
46
50
- name : Checkout repository
47
- uses : actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
51
+ uses : actions/checkout@v4
48
52
with :
49
53
token : ${{ secrets.WORKFLOW_USER_GH_TOKEN }}
50
54
@@ -60,12 +64,31 @@ jobs:
60
64
with :
61
65
prefix : ${{ env.TAG_PREFIX }}
62
66
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
+
63
74
- name : Determine target release
64
75
id : get_target_release
65
76
run : |
77
+ create_release=true
66
78
desired_version=${{ inputs.desired-version }}
67
79
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
69
92
70
93
if [ -z "$desired_version" ]; then
71
94
case $version_bump in
@@ -103,17 +126,21 @@ jobs:
103
126
104
127
echo "Target version: $version"
105
128
echo "Target tag: $tag"
129
+ echo "Create release: $create_release"
106
130
echo "version=$version" >> $GITHUB_OUTPUT
107
131
echo "tag=$tag" >> $GITHUB_OUTPUT
132
+ echo "create_release=$create_release" >> $GITHUB_OUTPUT
108
133
109
134
- name : Determine target commit
135
+ if : steps.get_target_release.outputs.create_release == 'true'
110
136
id : get_target_commit
111
137
run : |
112
138
sha=$(git rev-parse HEAD)
113
139
echo "Target commit: $sha"
114
140
echo "sha=$sha" >> $GITHUB_OUTPUT
115
141
116
142
- name : Wait for check suites to complete
143
+ if : steps.get_target_release.outputs.create_release == 'true'
117
144
uses : sap-contributions/await-check-suites@master
118
145
with :
119
146
ref : ${{ steps.get_target_commit.outputs.sha }}
@@ -123,12 +150,9 @@ jobs:
123
150
appSlugFilter : github-actions
124
151
125
152
- 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