@@ -23,7 +23,6 @@ RELEASE_PRE=`echo $EVENT_JSON | jq -r '.release.prerelease'`
2323RELEASE_TAG=` echo $EVENT_JSON | jq -r ' .release.tag_name' `
2424RELEASE_BRANCH=` echo $EVENT_JSON | jq -r ' .release.target_commitish' `
2525RELEASE_ID=` echo $EVENT_JSON | jq -r ' .release.id' `
26- RELEASE_BODY=` echo $EVENT_JSON | jq -r ' .release.body' `
2726
2827OUTPUT_DIR=" $GITHUB_WORKSPACE /build"
2928PACKAGE_NAME=" esp32-$RELEASE_TAG "
@@ -185,7 +184,7 @@ cp -f "$GITHUB_WORKSPACE/tools/gen_insights_package.py" "$PKG_DIR/tools/"
185184cp -f " $GITHUB_WORKSPACE /tools/gen_insights_package.exe" " $PKG_DIR /tools/"
186185cp -Rf " $GITHUB_WORKSPACE /tools/partitions" " $PKG_DIR /tools/"
187186cp -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/"
189188
190189# Remove unnecessary files in the package folder
191190echo " Cleaning up folders ..."
@@ -195,7 +194,7 @@ find "$PKG_DIR" -name '*.git*' -type f -delete
195194# Replace tools locations in platform.txt
196195echo " Generating platform.txt..."
197196cat " $GITHUB_WORKSPACE /platform.txt" | \
198- sed " s/version=.*/version=$ver$extent /g" | \
197+ sed " s/version=.*/version=$RELEASE_TAG /g" | \
199198sed ' 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' | \
200199sed ' 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' | \
201200sed ' 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"
241240echo " Download URL: $PACKAGE_URL "
242241echo
243242
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+
244305# #
245306# # PACKAGE JSON
246307# #
@@ -268,21 +329,13 @@ if [ $? -ne 0 ]; then echo "ERROR: Get Releases Failed! ($?)"; exit 1; fi
268329set +e
269330prev_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false)) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name" )
270331prev_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" )
273332shopt -s nocasematch
274333if [ " $prev_release " == " $RELEASE_TAG " ]; then
275334 prev_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false and .prerelease == false)) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
276335fi
277336if [ " $prev_any_release " == " $RELEASE_TAG " ]; then
278337 prev_any_release=$( echo " $releasesJson " | jq -e -r " . | map(select(.draft == false)) | sort_by(.published_at | - fromdateiso8601) | .[1].tag_name" )
279338fi
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
286339shopt -u nocasematch
287340set -e
288341
@@ -315,97 +368,6 @@ if [ "$RELEASE_PRE" == "false" ]; then
315368 echo
316369fi
317370
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 " "
409371set +e
410372
411373# #
0 commit comments