Skip to content

Commit 9f8f057

Browse files
pacucha42me-no-dev
authored andcommitted
* relnotes handling update (espressif#1592)
* script exec fails on curl error
1 parent a835bb2 commit 9f8f057

File tree

2 files changed

+47
-7
lines changed

2 files changed

+47
-7
lines changed

tools/build-release.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ function downloadAndMergePackageJSON()
3636

3737
#curl --verbose -sH "Authorization: token $curlAuthToken" -L -o "$old_json" "$jsonLink"
3838
curl -L -o "$old_json" "$jsonLink?access_token=$curlAuthToken"
39+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
40+
3941

4042
#curl -L -o "$old_json" "$jsonLink"
4143

@@ -255,10 +257,7 @@ echo " - creating package ZIP archive (${package_name_zip})..."
255257
pushd $releaseDir >/dev/null
256258

257259
zip -qr $package_name_zip $package_name
258-
if [ $? -ne 0 ]; then
259-
echo " !error: failed to create ${package_name_zip} (ZIP errno: $?) => aborting"
260-
exit 1
261-
fi
260+
if [ $? -ne 0 ]; then echo " !error: failed to create ${package_name_zip} (ZIP errno: $?) => aborting"; exit 1; fi
262261

263262
# Calculate SHA sum and size of ZIP archive
264263
sha=`shasum -a 256 $package_name_zip | cut -f 1 -d ' '`
@@ -296,6 +295,7 @@ set +e
296295

297296
releasesJson=$releaseDir/releases.json
298297
curl -sH "Authorization: token $curlAuth" https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases > $releasesJson
298+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
299299

300300
prev_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == false)) | sort_by(.created_at | - fromdateiso8601) | .[0].tag_name' ${releasesJson})
301301
prev_any_release=$(jq -e -r '. | map(select(.draft == false)) | sort_by(.created_at | - fromdateiso8601) | .[0].tag_name' ${releasesJson})

tools/deploy.sh

+43-3
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ shopt -u nocasematch
7777
# other lines: converted to bullets
7878
# empty lines ignored
7979
# if '* ' found as a first char pair, it's converted to '- ' to keep bulleting unified
80+
echo Preparing release notes
81+
echo -----------------------
82+
echo "Tag's message:"
83+
8084
relNotesRaw=`git show -s --format=%b $varTagName`
8185
readarray -t msgArray <<<"$relNotesRaw"
8286

@@ -93,12 +97,19 @@ if [ $arrLen > 3 ]; then
9397
if [ "${oneLine:0:2}" == "* " ]; then oneLine=$(echo ${oneLine/\*/-}); fi
9498
if [ "${oneLine:0:2}" != "- " ]; then releaseNotes+="- "; fi
9599
releaseNotes+="$oneLine\\n"
100+
101+
#debug output
102+
echo " ${oneLine}"
96103
fi
97104
fi
98105
let ind=$ind+1
99106
done
107+
echo "<tag's message end>"
100108
else
101109
releaseNotes="#### Release of $varTagName\\n"
110+
111+
#debug output
112+
echo " Release of $varTagName"
102113
fi
103114

104115
# - list of commits (commits.txt must exit in the output dir)
@@ -107,11 +118,18 @@ if [ -e "$commitFile" ]; then
107118

108119
releaseNotes+="\\n##### Commits\\n"
109120

121+
#debug output
122+
echo
123+
echo "Commits:"
124+
110125
IFS=$'\n'
111126
for next in `cat $commitFile`
112127
do
113128
IFS=' ' read -r commitId commitMsg <<< "$next"
114129
releaseNotes+="- [$commitId](https://github.com/$varRepoSlug/commit/$commitId) $commitMsg\\n"
130+
131+
#debug output
132+
echo " - [$commitId](https://github.com/$varRepoSlug/commit/$commitId) $commitMsg"
115133
done
116134
rm -f $commitFile
117135
fi
@@ -124,19 +142,32 @@ echo "Checking for possible releases of current tag $varTagName..."
124142
HTTP_RESPONSE=$(curl -L --silent --write-out "HTTPSTATUS:%{http_code}" https://api.github.com/repos/$varRepoSlug/releases/tags/$varTagName?access_token=$varAccessToken)
125143
HTTP_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
126144
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
127-
128145
echo " HTTP server response code: $HTTP_STATUS"
129146

130147
# if the release exists, append/update recent files to its assets vector
131148
if [ $HTTP_STATUS -eq 200 ]; then
132149
releaseId=$(echo $HTTP_BODY | jq -r '.id')
133150
echo " - $varTagName release found (id $releaseId)"
151+
152+
#merge release notes and overwrite pre-release flag. all other attributes remain unchanged
153+
releaseNotesGH=$(echo $HTTP_BODY | jq -r '.body')
154+
releaseNotes="$releaseNotesGH\\n$releaseNotes"
155+
156+
echo " ... updating release notes and pre-release flag"
157+
158+
curlData="{\"body\": \"$releaseNotes\",\"prerelease\": $varPrerelease}"
159+
curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases/$releaseId?access_token=$varAccessToken
160+
161+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
162+
134163
#... or create a new release record
135164
else
136165
curlData="{\"tag_name\": \"$varTagName\",\"target_commitish\": \"master\",\"name\": \"v$varTagName\",\"body\": \"$releaseNotes\",\"draft\": false,\"prerelease\": $varPrerelease}"
137166
#echo "DEBUG: curl --data \"${curlData}\" https://api.github.com/repos/${varRepoSlug}/releases?access_token=$varAccessToken | jq -r '.id'"
138167
releaseId=$(curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases?access_token=$varAccessToken | jq -r '.id')
139168
echo " - new release created for $varTagName (id $releaseId)"
169+
170+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
140171
fi
141172

142173
# Assets defined by dir contents
@@ -154,13 +185,22 @@ echo varAssets: $varAssets
154185

155186
#Upload additional assets
156187
if [ ! -z $varAssets ]; then
188+
echo
189+
echo "Uploading assets:"
190+
echo "-----------------"
191+
157192
curlAuth="Authorization: token $varAccessToken"
158193
for filename in $(echo $varAssets | tr ";" "\n")
159194
do
195+
echo " - ${filename}..."
196+
curl -X POST -sH "$curlAuth" -H "Content-Type: application/octet-stream" --data-binary @"$filename" https://uploads.github.com/repos/$varRepoSlug/releases/$releaseId/assets?name=$(basename $filename)
197+
198+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
199+
200+
echo
201+
echo "OK"
160202
echo
161-
echo Uploading $filename...
162203

163-
curl -X POST -sH "$curlAuth" -H "Content-Type: application/octet-stream" --data-binary @"$filename" https://uploads.github.com/repos/$varRepoSlug/releases/$releaseId/assets?name=$(basename $filename)
164204
done
165205
fi
166206

0 commit comments

Comments
 (0)