@@ -9,7 +9,7 @@ declare -A hash2namesref=( ["k1"]="v1")
99get_hash2pr_map () {
1010 commit_hash_refnames_regex=" ^([a-f0-9]{40})[[:blank:]]*(.*)"
1111 refnames_pr_id_regex=" ^\(.*/pr/([0-9]+).*\)"
12- GIT_LOG_LHASH2REFNAMES=" $( mktemp /tmp/$( basename $0 ) .XXXXXX. h2refnames) "
12+ GIT_LOG_LHASH2REFNAMES=" $( mktemp /tmp/$( basename $0 ) .h2refnames.XXXXXX ) "
1313 git log --pretty=format:' %H %d' ${COMMIT_RANGE} > ${GIT_LOG_LHASH2REFNAMES}
1414 while read -r line || [ -n " $line " ]; do
1515 line=$( echo " $line " | xargs)
@@ -35,7 +35,7 @@ get_hash2pr_map() {
3535# return release history string with '\n' delimited
3636generate_release_history () {
3737 commit_hash_subj_regex=" ^([a-f0-9]{40})[[:blank:]]+(.+)(\(\#[0-9]+\))?"
38- GIT_LOG_LHASH2SUBJ=" $( mktemp /tmp/$( basename $0 ) .XXXXXX. h2subj) "
38+ GIT_LOG_LHASH2SUBJ=" $( mktemp /tmp/$( basename $0 ) .h2subj.XXXXXX ) "
3939 git log --pretty=format:' %H %s' ${COMMIT_RANGE} > ${GIT_LOG_LHASH2SUBJ}
4040 rel_hist=" "
4141 while read -r line || [ -n " $line " ]; do
@@ -65,7 +65,7 @@ generate_release_history() {
6565# $2 - ${NEW_RELEASE_DATE}
6666# $3 - ${NEW_RELEASE_HISTORY}
6767write_release_note () {
68- GITHUB_RELEASE_PAYLOAD=" $( mktemp /tmp/$( basename $0 ) .XXXXXX) "
68+ GITHUB_RELEASE_PAYLOAD=" $( mktemp /tmp/$( basename $0 ) .releasePayload. XXXXXX) "
6969 echo " {" > " ${GITHUB_RELEASE_PAYLOAD} "
7070 echo ' "tag_name":' " \" $1 \" ," >> " ${GITHUB_RELEASE_PAYLOAD} "
7171 echo ' "name":' " \" $1 \" ," >> " ${GITHUB_RELEASE_PAYLOAD} "
109109
110110# Detect if running from a fork
111111#
112- GITHUB_REPO=" $( git ls-remote --quiet -- get-url | grep -o ' [^:/]\{1,\}/bluebutton-web-server' ) "
112+ GITHUB_REPO=" $( git ls-remote --get-url | grep -o ' [^:/]\{1,\}/bluebutton-web-server' ) "
113113
114114# Test running from root of repository
115115#
@@ -169,39 +169,46 @@ get_hash2pr_map
169169NEW_RELEASE_HISTORY=$( generate_release_history)
170170
171171if [[ -z " ${NEW_RELEASE_HISTORY} " ]]; then
172- echo " No commits detected since previous release, no need for a new release, exiting."
173- exit 0
172+ echo " No commits detected since previous release, no need for a new release, exiting."
173+ rm " /tmp/$( basename $0 ) " *
174+ exit 0
174175fi
175176
176177# Create and push new release tag
177178#
179+ echo " Pushing new tag"
178180git tag -a -s -m " Blue Button API release $NEW_RELEASE_TAG " " $NEW_RELEASE_TAG "
179- git push --quiet -- tags
181+ git push --tags
180182
181183# Create GitHub release template
182184#
183185write_release_note " ${NEW_RELEASE_TAG} " " ${NEW_RELEASE_DATE} " " ${NEW_RELEASE_HISTORY} "
184186
185187# Create GitHub release via API request
186188#
187- GITHUB_RELEASE_STATUS=" $( mktemp /tmp/$( basename $0 ) .XXXXXX) "
189+ GITHUB_RELEASE_STATUS=" $( mktemp /tmp/$( basename $0 ) .releaseStatus. XXXXXX) "
188190
189191curl -s -X POST -H " Accept: application/vnd.github.v3+json" \
190192 -H " Authorization: token ${GITHUB_ACCESS_TOKEN} " \
191193 " https://api.github.com/repos/${GITHUB_REPO} /releases" \
192194 --data-binary " @${GITHUB_RELEASE_PAYLOAD} " > " ${GITHUB_RELEASE_STATUS} "
193195
194196# Verify GitHub release
195- if [[ " $( grep ' "errors":' ${GITHUB_RELEASE_STATUS} ) " ]]; then
197+ if grep -q " \" tag_name\" : \" ${NEW_RELEASE_TAG} \" " " ${GITHUB_RELEASE_STATUS} "
198+ then
199+ echo " Release created successfully: https://github.com/${GITHUB_REPO} /releases/tag/${NEW_RELEASE_TAG} "
200+ rm " /tmp/$( basename $0 ) " *
201+ exit 0
202+ else
196203 echo " Error during release creation, dumping debug output!"
197204 echo " Release JSON payload:"
198205 cat " ${GITHUB_RELEASE_PAYLOAD} "
199206 echo " Release API status:"
200207 cat " ${GITHUB_RELEASE_STATUS} "
208+ echo " Rolling back pushed tag"
209+ git push -d origin " $NEW_RELEASE_TAG "
210+ echo " Deleting local tag"
211+ git tag -d " $NEW_RELEASE_TAG "
201212 rm " /tmp/$( basename $0 ) " *
202213 exit 1
203- else
204- echo " Release created successfully: https://github.com/${GITHUB_REPO} /releases/tag/${NEW_RELEASE_TAG} "
205- rm " /tmp/$( basename $0 ) " *
206- exit 0
207214fi
0 commit comments