@@ -23,7 +23,6 @@ RELEASE_PRE=`echo $EVENT_JSON | jq -r '.release.prerelease'`
23
23
RELEASE_TAG=` echo $EVENT_JSON | jq -r ' .release.tag_name' `
24
24
RELEASE_BRANCH=` echo $EVENT_JSON | jq -r ' .release.target_commitish' `
25
25
RELEASE_ID=` echo $EVENT_JSON | jq -r ' .release.id' `
26
- RELEASE_BODY=` echo $EVENT_JSON | jq -r ' .release.body' `
27
26
28
27
OUTPUT_DIR=" $GITHUB_WORKSPACE /build"
29
28
PACKAGE_NAME=" esp32-$RELEASE_TAG "
@@ -185,7 +184,7 @@ cp -f "$GITHUB_WORKSPACE/tools/gen_insights_package.py" "$PKG_DIR/tools/"
185
184
cp -f " $GITHUB_WORKSPACE /tools/gen_insights_package.exe" " $PKG_DIR /tools/"
186
185
cp -Rf " $GITHUB_WORKSPACE /tools/partitions" " $PKG_DIR /tools/"
187
186
cp -Rf " $GITHUB_WORKSPACE /tools/ide-debug" " $PKG_DIR /tools/"
188
- cp -f $GITHUB_WORKSPACE /tools/platformio-build* .py " $PKG_DIR /tools/"
187
+ cp -f " $GITHUB_WORKSPACE /tools/platformio-build.py" " $PKG_DIR /tools/"
189
188
190
189
# Remove unnecessary files in the package folder
191
190
echo " Cleaning up folders ..."
@@ -195,7 +194,7 @@ find "$PKG_DIR" -name '*.git*' -type f -delete
195
194
# Replace tools locations in platform.txt
196
195
echo " Generating platform.txt..."
197
196
cat " $GITHUB_WORKSPACE /platform.txt" | \
198
- sed " s/version=.*/version=$ver$extent /g" | \
197
+ sed " s/version=.*/version=$RELEASE_TAG /g" | \
199
198
sed ' s/tools.esp32-arduino-libs.path={runtime.platform.path}\/tools\/esp32-arduino-libs/tools.esp32-arduino-libs.path=\{runtime.tools.esp32-arduino-libs.path\}/g' | \
200
199
sed ' s/tools.xtensa-esp32-elf-gcc.path={runtime.platform.path}\/tools\/xtensa-esp32-elf/tools.xtensa-esp32-elf-gcc.path=\{runtime.tools.xtensa-esp32-elf-gcc.path\}/g' | \
201
200
sed ' s/tools.xtensa-esp32s2-elf-gcc.path={runtime.platform.path}\/tools\/xtensa-esp32s2-elf/tools.xtensa-esp32s2-elf-gcc.path=\{runtime.tools.xtensa-esp32s2-elf-gcc.path\}/g' | \
@@ -241,6 +240,68 @@ echo "Package Uploaded"
241
240
echo " Download URL: $PACKAGE_URL "
242
241
echo
243
242
243
+ # #
244
+ # # LIBS PACKAGE ZIP
245
+ # #
246
+
247
+ LIBS_PROJ_NAME=" esp32-arduino-libs"
248
+ LIBS_PKG_DIR=" $OUTPUT_DIR /$LIBS_PROJ_NAME "
249
+ LIBS_PACKAGE_ZIP=" $LIBS_PROJ_NAME -$RELEASE_TAG .zip"
250
+
251
+ # Get the libs package URL from the template
252
+ LIBS_PACKAGE_SRC_ZIP=" $OUTPUT_DIR /src-$LIBS_PROJ_NAME .zip"
253
+ LIBS_PACKAGE_SRC_URL=` cat $PACKAGE_JSON_TEMPLATE | jq -r " .packages[0].tools[] | select(.name==\" $LIBS_PROJ_NAME \" ) | .systems[0].url" `
254
+
255
+ # Download the libs package
256
+ echo " Downloading the libs archive ..."
257
+ # curl -o "$LIBS_PACKAGE_SRC_ZIP" -LJO --url "$LIBS_PACKAGE_SRC_URL" || exit 1
258
+
259
+ # Extract the libs package
260
+ echo " Extracting the archive ..."
261
+ unzip -q -d " $OUTPUT_DIR " " $LIBS_PACKAGE_SRC_ZIP " || exit 1
262
+ EXTRACTED_DIR=` ls " $OUTPUT_DIR " | grep " ^$LIBS_PROJ_NAME " `
263
+ mv " $OUTPUT_DIR /$EXTRACTED_DIR " " $LIBS_PKG_DIR " || exit 1
264
+
265
+ # Remove unnecessary files in the package folder
266
+ echo " Cleaning up folders ..."
267
+ find " $LIBS_PKG_DIR " -name ' *.DS_Store' -exec rm -f {} \;
268
+ find " $LIBS_PKG_DIR " -name ' *.git*' -type f -delete
269
+
270
+ # Compress package folder
271
+ echo " Creating ZIP ..."
272
+ pushd " $OUTPUT_DIR " > /dev/null
273
+ zip -qr " $LIBS_PACKAGE_ZIP " " $LIBS_PROJ_NAME "
274
+ if [ $? -ne 0 ]; then echo " ERROR: Failed to create $LIBS_PACKAGE_ZIP ($? )" ; exit 1; fi
275
+
276
+ # Calculate SHA-256
277
+ echo " Calculating SHA sum ..."
278
+ LIBS_PACKAGE_PATH=" $OUTPUT_DIR /$LIBS_PACKAGE_ZIP "
279
+ LIBS_PACKAGE_SHA=` shasum -a 256 " $LIBS_PACKAGE_ZIP " | cut -f 1 -d ' ' `
280
+ LIBS_PACKAGE_SIZE=` get_file_size " $LIBS_PACKAGE_ZIP " `
281
+ popd > /dev/null
282
+ rm -rf " $LIBS_PKG_DIR "
283
+ echo " '$LIBS_PACKAGE_ZIP ' Created! Size: $LIBS_PACKAGE_SIZE , SHA-256: $LIBS_PACKAGE_SHA "
284
+ echo
285
+
286
+ # Upload package to release page
287
+ echo " Uploading libs package to release page ..."
288
+ LIBS_PACKAGE_URL=` git_safe_upload_asset " $LIBS_PACKAGE_PATH " `
289
+ echo " Libs Package Uploaded"
290
+ echo " Libs Download URL: $LIBS_PACKAGE_URL "
291
+ echo
292
+
293
+ # Construct JQ argument with libs package data
294
+ libs_jq_arg=" \
295
+ (.packages[0].tools[] | select(.name==\" $LIBS_PROJ_NAME \" )).systems[].url = \" $LIBS_PACKAGE_URL \" |\
296
+ (.packages[0].tools[] | select(.name==\" $LIBS_PROJ_NAME \" )).systems[].archiveFileName = \" $LIBS_PACKAGE_ZIP \" |\
297
+ (.packages[0].tools[] | select(.name==\" $LIBS_PROJ_NAME \" )).systems[].size = \" $LIBS_PACKAGE_SIZE \" |\
298
+ (.packages[0].tools[] | select(.name==\" $LIBS_PROJ_NAME \" )).systems[].checksum = \" SHA-256:$LIBS_PACKAGE_SHA \" "
299
+
300
+ # Update template values for the libs package and store it in the build folder
301
+ cat " $PACKAGE_JSON_TEMPLATE " | jq " $libs_jq_arg " > " $OUTPUT_DIR /package-$LIBS_PROJ_NAME .json"
302
+ # Overwrite the template location with the newly edited one
303
+ PACKAGE_JSON_TEMPLATE=" $OUTPUT_DIR /package-$LIBS_PROJ_NAME .json"
304
+
244
305
# #
245
306
# # PACKAGE JSON
246
307
# #
@@ -268,21 +329,13 @@ if [ $? -ne 0 ]; then echo "ERROR: Get Releases Failed! ($?)"; exit 1; fi
268
329
set +e
269
330
prev_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false)) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name" )
270
331
prev_any_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false)) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name" )
271
- prev_branch_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false and .target_commitish == \" $RELEASE_BRANCH \" )) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name" )
272
- prev_branch_any_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .target_commitish == \" $RELEASE_BRANCH \" )) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name" )
273
332
shopt -s nocasematch
274
333
if [ " $prev_release " == " $RELEASE_TAG " ]; then
275
334
prev_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false)) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
276
335
fi
277
336
if [ " $prev_any_release " == " $RELEASE_TAG " ]; then
278
337
prev_any_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false)) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
279
338
fi
280
- if [ " $prev_branch_release " == " $RELEASE_TAG " ]; then
281
- prev_branch_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false and .target_commitish == \" $RELEASE_BRANCH \" )) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
282
- fi
283
- if [ " $prev_branch_any_release " == " $RELEASE_TAG " ]; then
284
- prev_branch_any_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .target_commitish == \" $RELEASE_BRANCH \" )) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
285
- fi
286
339
shopt -u nocasematch
287
340
set -e
288
341
@@ -315,97 +368,6 @@ if [ "$RELEASE_PRE" == "false" ]; then
315
368
echo
316
369
fi
317
370
318
- # #
319
- # # RELEASE NOTES
320
- # #
321
-
322
- # Create release notes
323
- echo " Preparing release notes ..."
324
- releaseNotes=" "
325
-
326
- # Process annotated tags
327
- relNotesRaw=` git -C " $GITHUB_WORKSPACE " show -s --format=%b $RELEASE_TAG `
328
- readarray -t msgArray <<< " $relNotesRaw"
329
- arrLen=${# msgArray[@]}
330
- if [ $arrLen > 3 ] && [ " ${msgArray[0]: 0: 3} " == " tag" ]; then
331
- ind=3
332
- while [ $ind -lt $arrLen ]; do
333
- if [ $ind -eq 3 ]; then
334
- releaseNotes=" #### ${msgArray[ind]} "
335
- releaseNotes+=$' \r\n '
336
- else
337
- oneLine=" $( echo -e " ${msgArray[ind]} " | sed -e ' s/^[[:space:]]*//' ) "
338
- if [ ${# oneLine} -gt 0 ]; then
339
- if [ " ${oneLine: 0: 2} " == " * " ]; then oneLine=$( echo ${oneLine/ \* / -} ) ; fi
340
- if [ " ${oneLine: 0: 2} " != " - " ]; then releaseNotes+=" - " ; fi
341
- releaseNotes+=" $oneLine "
342
- releaseNotes+=$' \r\n '
343
- fi
344
- fi
345
- let ind=$ind +1
346
- done
347
- fi
348
-
349
- # Append Commit Messages
350
- echo
351
- echo " Previous Branch Release: $prev_branch_release "
352
- echo " Previous Branch (any)release: $prev_branch_any_release "
353
- echo
354
- commitFile=" $OUTPUT_DIR /commits.txt"
355
- COMMITS_SINCE_RELEASE=" $prev_branch_any_release "
356
- if [ " $RELEASE_PRE " == " false" ]; then
357
- COMMITS_SINCE_RELEASE=" $prev_branch_release "
358
- fi
359
- if [ ! -z " $COMMITS_SINCE_RELEASE " ] && [ " $COMMITS_SINCE_RELEASE " != " null" ]; then
360
- echo " Getting commits since $COMMITS_SINCE_RELEASE ..."
361
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 " $COMMITS_SINCE_RELEASE ..HEAD" > " $commitFile "
362
- elif [ " $RELEASE_BRANCH " != " master" ]; then
363
- echo " Getting all commits on branch '$RELEASE_BRANCH ' ..."
364
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 --cherry-pick --left-only --no-merges HEAD...origin/master > " $commitFile "
365
- else
366
- echo " Getting all commits on master ..."
367
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 --no-merges > " $commitFile "
368
- fi
369
- releaseNotes+=$' \r\n ##### Commits\r\n '
370
- IFS=$' \n '
371
- for next in ` cat $commitFile `
372
- do
373
- IFS=' ' read -r commitId commitMsg <<< " $next"
374
- commitLine=" - [$commitId ](https://github.com/$GITHUB_REPOSITORY /commit/$commitId ) $commitMsg "
375
- releaseNotes+=" $commitLine "
376
- releaseNotes+=$' \r\n '
377
- done
378
- rm -f $commitFile
379
-
380
- # Prepend the original release body
381
- if [ " ${RELEASE_BODY: -1} " == $' \r ' ]; then
382
- RELEASE_BODY=" ${RELEASE_BODY: 0:- 1} "
383
- else
384
- RELEASE_BODY=" $RELEASE_BODY "
385
- fi
386
- RELEASE_BODY+=$' \r\n '
387
- releaseNotes=" $RELEASE_BODY$releaseNotes "
388
-
389
- # Update release page
390
- echo " Updating release notes ..."
391
- releaseNotes=$( printf ' %s' " $releaseNotes " | python -c ' import json,sys; print(json.dumps(sys.stdin.read()))' )
392
- releaseNotes=${releaseNotes: 1:- 1}
393
- curlData=" {\" body\" : \" $releaseNotes \" }"
394
- releaseData=` curl --data " $curlData " " https://api.github.com/repos/$GITHUB_REPOSITORY /releases/$RELEASE_ID ?access_token=$GITHUB_TOKEN " 2> /dev/null`
395
- if [ $? -ne 0 ]; then echo " ERROR: Updating Release Failed: $? " ; exit 1; fi
396
- echo " Release notes successfully updated"
397
- echo
398
-
399
- # #
400
- # # SUBMODULE VERSIONS
401
- # #
402
-
403
- # Upload submodules versions
404
- echo " Generating submodules.txt ..."
405
- git -C " $GITHUB_WORKSPACE " submodule status > " $OUTPUT_DIR /submodules.txt"
406
- echo " Uploading submodules.txt ..."
407
- echo " Download URL: " ` git_safe_upload_asset " $OUTPUT_DIR /submodules.txt" `
408
- echo " "
409
371
set +e
410
372
411
373
# #
0 commit comments