@@ -54,6 +54,24 @@ if [ -n "${VENDOR}" ]; then
5454 echo " Setting packager: $VENDOR "
5555fi
5656
57+ function update_version {
58+ local tag=$1
59+ local major
60+ local minor
61+ local patch
62+
63+ # Extract major, minor, and patch from the tag
64+ # We need to make sure to remove the "v" prefix from the tag and any characters after the patch version
65+ tag=$( echo " $tag " | sed ' s/^v//g' | sed ' s/-.*//g' )
66+ major=$( echo " $tag " | cut -d. -f1)
67+ minor=$( echo " $tag " | cut -d. -f2)
68+ patch=$( echo " $tag " | cut -d. -f3)
69+
70+ echo " Major: $major , Minor: $minor , Patch: $patch "
71+
72+ " ${SCRIPTS_DIR} /update-version.sh" " $major " " $minor " " $patch "
73+ }
74+
5775function get_file_size {
5876 local file=" $1 "
5977 if [[ " $OSTYPE " == " darwin" * ]]; then
@@ -199,8 +217,28 @@ set -e
199217# #
200218
201219mkdir -p " $OUTPUT_DIR "
202- PKG_DIR=" $OUTPUT_DIR /$PACKAGE_NAME "
220+ PKG_DIR=" ${ OUTPUT_DIR:? } /$PACKAGE_NAME "
203221PACKAGE_ZIP=" $PACKAGE_NAME .zip"
222+ PACKAGE_XZ=" $PACKAGE_NAME .tar.xz"
223+ LIBS_ZIP=" $PACKAGE_NAME -libs.zip"
224+ LIBS_XZ=" $PACKAGE_NAME -libs.tar.xz"
225+
226+ echo " Updating version..."
227+ update_version " $RELEASE_TAG "
228+ git config --global github.user " github-actions[bot]"
229+ git config --global user.name " github-actions[bot]"
230+ git config --global user.email " 41898282+github-actions[bot]@users.noreply.github.com"
231+ git add .
232+
233+ # We should only commit if there are changes
234+ need_update_commit=true
235+ if git diff --cached --quiet; then
236+ echo " Version already updated"
237+ need_update_commit=false
238+ else
239+ echo " Creating version update commit..."
240+ git commit -m " change(version): Update core version to $RELEASE_TAG "
241+ fi
204242
205243echo " Updating submodules ..."
206244git -C " $GITHUB_WORKSPACE " submodule update --init --recursive > /dev/null 2>&1
@@ -283,7 +321,7 @@ echo \#define ARDUINO_ESP32_GIT_DESC "$(git -C "$GITHUB_WORKSPACE" describe --ta
283321echo \# define ARDUINO_ESP32_RELEASE_" $ver_define " >> " $PKG_DIR /cores/esp32/core_version.h"
284322echo \# define ARDUINO_ESP32_RELEASE \" " $ver_define " \" >> " $PKG_DIR /cores/esp32/core_version.h"
285323
286- # Compress package folder
324+ # Compress ZIP package folder
287325echo " Creating ZIP ..."
288326pushd " $OUTPUT_DIR " > /dev/null
289327zip -qr " $PACKAGE_ZIP " " $PACKAGE_NAME "
@@ -293,22 +331,99 @@ if [ $? -ne 0 ]; then
293331fi
294332
295333# Calculate SHA-256
296- echo " Calculating SHA sum ..."
297- PACKAGE_PATH=" $OUTPUT_DIR /$PACKAGE_ZIP "
334+ echo " Calculating ZIP SHA sum ..."
335+ PACKAGE_PATH=" ${ OUTPUT_DIR:? } /$PACKAGE_ZIP "
298336PACKAGE_SHA=$( shasum -a 256 " $PACKAGE_ZIP " | cut -f 1 -d ' ' )
299337PACKAGE_SIZE=$( get_file_size " $PACKAGE_ZIP " )
300338popd > /dev/null
301- rm -rf " $PKG_DIR "
302339echo " '$PACKAGE_ZIP ' Created! Size: $PACKAGE_SIZE , SHA-256: $PACKAGE_SHA "
303340echo
304341
305- # Upload package to release page
306- echo " Uploading package to release page ..."
342+ # Upload ZIP package to release page
343+ echo " Uploading ZIP package to release page ..."
307344PACKAGE_URL=$( git_safe_upload_asset " $PACKAGE_PATH " )
308345echo " Package Uploaded"
309346echo " Download URL: $PACKAGE_URL "
310347echo
311348
349+ # Compress XZ package folder
350+ echo " Creating XZ ..."
351+ pushd " $OUTPUT_DIR " > /dev/null
352+ tar -cJf " $PACKAGE_XZ " " $PACKAGE_NAME "
353+ if [ $? -ne 0 ]; then
354+ echo " ERROR: Failed to create $PACKAGE_XZ ($? )"
355+ exit 1
356+ fi
357+
358+ # Calculate SHA-256
359+ echo " Calculating XZ SHA sum ..."
360+ PACKAGE_XZ_PATH=" ${OUTPUT_DIR:? } /$PACKAGE_XZ "
361+ PACKAGE_XZ_SHA=$( shasum -a 256 " $PACKAGE_XZ " | cut -f 1 -d ' ' )
362+ PACKAGE_XZ_SIZE=$( get_file_size " $PACKAGE_XZ " )
363+ popd > /dev/null
364+ echo " '$PACKAGE_XZ ' Created! Size: $PACKAGE_XZ_SIZE , SHA-256: $PACKAGE_XZ_SHA "
365+ echo
366+
367+ # Upload ZIP package to release page
368+ echo " Uploading ZIP package to release page ..."
369+ PACKAGE_URL=$( git_safe_upload_asset " $PACKAGE_PATH " )
370+ echo " Package Uploaded"
371+ echo " Download URL: $PACKAGE_URL "
372+ echo
373+
374+ # Upload XZ package to release page
375+ echo " Uploading XZ package to release page ..."
376+ PACKAGE_XZ_URL=$( git_safe_upload_asset " $PACKAGE_XZ_PATH " )
377+ echo " Package Uploaded"
378+ echo " Download URL: $PACKAGE_XZ_URL "
379+ echo
380+
381+ # Remove package folder
382+ rm -rf " $PKG_DIR "
383+
384+ # Copy Libs from lib-builder to release in ZIP and XZ
385+
386+ echo " Downloading libs from lib-builder ..."
387+ libs_url=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].url" )
388+ libs_sha=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].checksum" )
389+ libs_size=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].size" )
390+
391+ curl -L -o " $OUTPUT_DIR /$LIBS_ZIP " " $libs_url "
392+
393+ # Check SHA and Size
394+ zip_sha=$( sha256sum " $OUTPUT_DIR /$LIBS_ZIP " | awk ' {print $1}' )
395+ zip_size=$( stat -c%s " $OUTPUT_DIR /$LIBS_ZIP " )
396+ if [ " $zip_sha " != " $libs_sha " ] || [ " $zip_size " != " $libs_size " ]; then
397+ echo " ERROR: ZIP SHA and Size do not match"
398+ exit 1
399+ fi
400+
401+ # Extract ZIP
402+
403+ echo " Repacking libs to XZ ..."
404+ mkdir -p " ${OUTPUT_DIR:? } /tmp-libs"
405+ unzip " $OUTPUT_DIR /$LIBS_ZIP " -d " $OUTPUT_DIR /tmp-libs"
406+ tar -cJf " $OUTPUT_DIR /$LIBS_XZ " " $OUTPUT_DIR /tmp-libs"
407+
408+ # Upload ZIP and XZ libs to release page
409+
410+ echo " Uploading ZIP libs to release page ..."
411+ LIBS_ZIP_URL=$( git_safe_upload_asset " $OUTPUT_DIR /$LIBS_ZIP " )
412+ echo " ZIP libs Uploaded"
413+ echo " Download URL: $LIBS_ZIP_URL "
414+ echo
415+
416+ echo " Uploading XZ libs to release page ..."
417+ LIBS_XZ_URL=$( git_safe_upload_asset " $OUTPUT_DIR /$LIBS_XZ " )
418+ echo " XZ libs Uploaded"
419+ echo " Download URL: $LIBS_XZ_URL "
420+ echo
421+
422+ # Clean up
423+ rm -rf " ${OUTPUT_DIR:? } /tmp-libs"
424+ rm -rf " ${OUTPUT_DIR:? } /$LIBS_ZIP "
425+ rm -rf " ${OUTPUT_DIR:? } /$LIBS_XZ "
426+
312427# #
313428# # TEMP WORKAROUND FOR RV32 LONG PATH ON WINDOWS
314429# #
@@ -469,6 +584,17 @@ if [ "$RELEASE_PRE" == "false" ]; then
469584 echo
470585fi
471586
587+ if [ " $need_update_commit " == " true" ]; then
588+ echo " Pushing version update commit..."
589+ git push
590+ new_tag_commit=$( git rev-parse HEAD)
591+ echo " New commit: $new_tag_commit "
592+
593+ echo " Moving tag $RELEASE_TAG to $new_tag_commit ..."
594+ git tag -f " $RELEASE_TAG " " $new_tag_commit "
595+ git push --force origin " $RELEASE_TAG "
596+ fi
597+
472598set +e
473599
474600# #
0 commit comments