Skip to content

Commit 7f7a5e5

Browse files
authored
BB2-3357: Updates to autoincrement script (#1242) (#1245)
* Update README.md * Update README.md for the second time This is a longer description * Updates to script and undo other commits * Undo README change * Rm tmp files on success
1 parent 9b5487d commit 7f7a5e5

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

ops/build_autoincrement_release.sh

+20-13
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ declare -A hash2namesref=( ["k1"]="v1")
99
get_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
3636
generate_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}
6767
write_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}"
@@ -109,7 +109,7 @@ fi
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
169169
NEW_RELEASE_HISTORY=$(generate_release_history)
170170

171171
if [[ -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
174175
fi
175176

176177
# Create and push new release tag
177178
#
179+
echo "Pushing new tag"
178180
git 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
#
183185
write_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

189191
curl -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
207214
fi

0 commit comments

Comments
 (0)