Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b14f82b

Browse filesBrowse files
pacucha42me-no-dev
authored andcommitted
Release notes formatting update (espressif#1634)
1 parent c830511 commit b14f82b
Copy full SHA for b14f82b

File tree

2 files changed

+72
-31
lines changed
Filter options

2 files changed

+72
-31
lines changed

‎tools/build-release.sh

Copy file name to clipboardExpand all lines: tools/build-release.sh
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,8 @@ set -e
315315
rm -f "$releasesJson"
316316

317317
echo " previous Release: $prev_release"
318-
echo " previous (?Pre-)release: $prev_any_release"
319318
echo " previous Pre-release: $prev_pre_release"
319+
echo " previous (any)release: $prev_any_release"
320320

321321
# add generated items to JSON package-definition contents
322322
jq_arg=".packages[0].platforms[0].version = \"$ver\" | \

‎tools/deploy.sh

Copy file name to clipboardExpand all lines: tools/deploy.sh
+71-30Lines changed: 71 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
#!/bin/bash
22

3+
4+
json_escape () {
5+
printf '%s' "$1" | python -c 'import json,sys; print(json.dumps(sys.stdin.read()))'
6+
#printf '%s' "$1" | php -r 'echo json_encode(file_get_contents("php://stdin"));'
7+
}
8+
39
set -e
410

511
#Cmdline options
@@ -77,6 +83,7 @@ shopt -u nocasematch
7783
# other lines: converted to bullets
7884
# empty lines ignored
7985
# if '* ' found as a first char pair, it's converted to '- ' to keep bulleting unified
86+
echo
8087
echo Preparing release notes
8188
echo -----------------------
8289
echo "Tag's message:"
@@ -89,85 +96,124 @@ if [ $arrLen > 3 ]; then
8996
ind=3
9097
while [ $ind -lt $arrLen ]; do
9198
if [ $ind -eq 3 ]; then
92-
releaseNotes="#### ${msgArray[ind]}\\n"
99+
releaseNotes="#### ${msgArray[ind]}"
100+
releaseNotes+=$'\r\n'
93101
else
94102
oneLine="$(echo -e "${msgArray[ind]}" | sed -e 's/^[[:space:]]*//')"
95103

96104
if [ ${#oneLine} -gt 0 ]; then
97105
if [ "${oneLine:0:2}" == "* " ]; then oneLine=$(echo ${oneLine/\*/-}); fi
98106
if [ "${oneLine:0:2}" != "- " ]; then releaseNotes+="- "; fi
99-
releaseNotes+="$oneLine\\n"
107+
releaseNotes+="$oneLine"
108+
releaseNotes+=$'\r\n'
100109

101110
#debug output
102111
echo " ${oneLine}"
103112
fi
104113
fi
105114
let ind=$ind+1
106115
done
107-
echo "<tag's message end>"
108116
else
109-
releaseNotes="#### Release of $varTagName\\n"
117+
releaseNotes="#### Release of $varTagName"
118+
releaseNotes+=$'\r\n'
110119

111120
#debug output
112121
echo " Release of $varTagName"
113122
fi
114123

115124
# - list of commits (commits.txt must exit in the output dir)
116125
commitFile=$varAssetsDir/commits.txt
117-
if [ -e "$commitFile" ]; then
126+
if [ -s "$commitFile" ]; then
118127

119-
releaseNotes+="\\n##### Commits\\n"
128+
releaseNotes+=$'\r\n##### Commits\r\n'
120129

121-
#debug output
122130
echo
123131
echo "Commits:"
124132

125133
IFS=$'\n'
126134
for next in `cat $commitFile`
127135
do
128136
IFS=' ' read -r commitId commitMsg <<< "$next"
129-
releaseNotes+="- [$commitId](https://github.com/$varRepoSlug/commit/$commitId) $commitMsg\\n"
137+
commitLine="- [$commitId](https://github.com/$varRepoSlug/commit/$commitId) $commitMsg"
138+
echo " $commitLine"
130139

131-
#debug output
132-
echo " - [$commitId](https://github.com/$varRepoSlug/commit/$commitId) $commitMsg"
140+
releaseNotes+="$commitLine"
141+
releaseNotes+=$'\r\n'
133142
done
134143
rm -f $commitFile
135144
fi
136145

137-
releaseNotes=$(perl -pe 's/\r?\n/\\n/' <<< ${releaseNotes})
138-
139146
# Check possibly existing release for current tag
140-
echo "Checking for possible releases of current tag $varTagName..."
141-
# (eg build invoked by Create New Release GHUI button -> GH default release pack created immediatelly including default assests)
147+
echo
148+
echo "Processing GitHub release record for $varTagName:"
149+
echo "-------------------------------------------------"
150+
151+
echo " - check $varTagName possible existence..."
152+
153+
# (eg build invoked by Create New Release GHUI button -> GH default release pack created immediately including default assests)
142154
HTTP_RESPONSE=$(curl -L --silent --write-out "HTTPSTATUS:%{http_code}" https://api.github.com/repos/$varRepoSlug/releases/tags/$varTagName?access_token=$varAccessToken)
155+
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
156+
143157
HTTP_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
144158
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
145-
echo " HTTP server response code: $HTTP_STATUS"
159+
echo " ---> GitHub server HTTP response: $HTTP_STATUS"
146160

147161
# if the release exists, append/update recent files to its assets vector
148162
if [ $HTTP_STATUS -eq 200 ]; then
149163
releaseId=$(echo $HTTP_BODY | jq -r '.id')
150164
echo " - $varTagName release found (id $releaseId)"
151165

152-
#merge release notes and overwrite pre-release flag. all other attributes remain unchanged
166+
#Merge release notes and overwrite pre-release flag. all other attributes remain unchanged:
167+
168+
# 1. take existing notes from server (added by release creator)
153169
releaseNotesGH=$(echo $HTTP_BODY | jq -r '.body')
154-
releaseNotes="$releaseNotesGH\\n$releaseNotes"
155170

156-
echo " ... updating release notes and pre-release flag"
171+
# - strip possibly trailing CR
172+
if [ "${releaseNotesGH: -1}" == $'\r' ]; then
173+
releaseNotesTemp="${releaseNotesGH:0:-1}"
174+
else
175+
releaseNotesTemp="$releaseNotesGH"
176+
fi
177+
# - add CRLF to make relnotes consistent for JSON encoding
178+
releaseNotesTemp+=$'\r\n'
179+
180+
# 2. #append generated relnotes (usually commit oneliners)
181+
releaseNotes="$releaseNotesTemp$releaseNotes"
182+
183+
# 3. JSON-encode whole string for GH API transfer
184+
releaseNotes=$(json_escape "$releaseNotes")
185+
186+
# 4. remove extra quotes returned by python (dummy but whatever)
187+
releaseNotes=${releaseNotes:1:-1}
188+
189+
#Update current GH release record
190+
echo " - updating release notes and pre-release flag:"
157191

158192
curlData="{\"body\": \"$releaseNotes\",\"prerelease\": $varPrerelease}"
159-
curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases/$releaseId?access_token=$varAccessToken
193+
echo " <data.begin>$curlData<data.end>"
194+
echo
195+
#echo "DEBUG: curl --data \"$curlData\" https://api.github.com/repos/$varRepoSlug/releases/$releaseId?access_token=$varAccessToken"
160196

197+
curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases/$releaseId?access_token=$varAccessToken
161198
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
162199

200+
echo " - $varTagName release record successfully updated"
201+
163202
#... or create a new release record
164203
else
204+
releaseNotes=$(json_escape "$releaseNotes")
205+
releaseNotes=${releaseNotes:1:-1}
206+
207+
echo " - release $varTagName not found, creating a new record:"
208+
165209
curlData="{\"tag_name\": \"$varTagName\",\"target_commitish\": \"master\",\"name\": \"v$varTagName\",\"body\": \"$releaseNotes\",\"draft\": false,\"prerelease\": $varPrerelease}"
210+
echo " <data.begin>$curlData<data.end>"
211+
166212
#echo "DEBUG: curl --data \"${curlData}\" https://api.github.com/repos/${varRepoSlug}/releases?access_token=$varAccessToken | jq -r '.id'"
167213
releaseId=$(curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases?access_token=$varAccessToken | jq -r '.id')
168-
echo " - new release created for $varTagName (id $releaseId)"
169-
170214
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
215+
216+
echo " - $varTagName release record successfully created (id $releaseId)"
171217
fi
172218

173219
# Assets defined by dir contents
@@ -180,19 +226,19 @@ if [ ! -z $varAssetsDir ]; then
180226
done
181227
fi
182228

183-
echo
184-
echo varAssets: $varAssets
185-
186229
#Upload additional assets
187230
if [ ! -z $varAssets ]; then
188231
echo
189232
echo "Uploading assets:"
190233
echo "-----------------"
234+
echo " Files to upload:"
235+
echo " $varAssets"
236+
echo
191237

192238
curlAuth="Authorization: token $varAccessToken"
193239
for filename in $(echo $varAssets | tr ";" "\n")
194240
do
195-
echo " - ${filename}..."
241+
echo " - ${filename}:"
196242
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)
197243

198244
if [ $? -ne 0 ]; then echo "FAILED: $? => aborting"; exit 1; fi
@@ -203,8 +249,3 @@ if [ ! -z $varAssets ]; then
203249

204250
done
205251
fi
206-
207-
echo
208-
echo
209-
210-

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.