@@ -217,8 +217,11 @@ set -e
217217# #
218218
219219mkdir -p " $OUTPUT_DIR "
220- PKG_DIR=" $OUTPUT_DIR /$PACKAGE_NAME "
220+ PKG_DIR=" ${ OUTPUT_DIR:? } /$PACKAGE_NAME "
221221PACKAGE_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"
222225
223226echo " Updating version..."
224227update_version " $RELEASE_TAG "
@@ -318,7 +321,7 @@ echo \#define ARDUINO_ESP32_GIT_DESC "$(git -C "$GITHUB_WORKSPACE" describe --ta
318321echo \# define ARDUINO_ESP32_RELEASE_" $ver_define " >> " $PKG_DIR /cores/esp32/core_version.h"
319322echo \# define ARDUINO_ESP32_RELEASE \" " $ver_define " \" >> " $PKG_DIR /cores/esp32/core_version.h"
320323
321- # Compress package folder
324+ # Compress ZIP package folder
322325echo " Creating ZIP ..."
323326pushd " $OUTPUT_DIR " > /dev/null
324327zip -qr " $PACKAGE_ZIP " " $PACKAGE_NAME "
@@ -328,22 +331,100 @@ if [ $? -ne 0 ]; then
328331fi
329332
330333# Calculate SHA-256
331- echo " Calculating SHA sum ..."
332- PACKAGE_PATH=" $OUTPUT_DIR /$PACKAGE_ZIP "
334+ echo " Calculating ZIP SHA sum ..."
335+ PACKAGE_PATH=" ${ OUTPUT_DIR:? } /$PACKAGE_ZIP "
333336PACKAGE_SHA=$( shasum -a 256 " $PACKAGE_ZIP " | cut -f 1 -d ' ' )
334337PACKAGE_SIZE=$( get_file_size " $PACKAGE_ZIP " )
335338popd > /dev/null
336- rm -rf " $PKG_DIR "
337339echo " '$PACKAGE_ZIP ' Created! Size: $PACKAGE_SIZE , SHA-256: $PACKAGE_SHA "
338340echo
339341
340- # Upload package to release page
341- echo " Uploading package to release page ..."
342+ # Compress XZ package folder
343+ echo " Creating XZ ..."
344+ pushd " $OUTPUT_DIR " > /dev/null
345+ tar -cJf " $PACKAGE_XZ " " $PACKAGE_NAME "
346+ if [ $? -ne 0 ]; then
347+ echo " ERROR: Failed to create $PACKAGE_XZ ($? )"
348+ exit 1
349+ fi
350+
351+ # Calculate SHA-256
352+ echo " Calculating XZ SHA sum ..."
353+ PACKAGE_XZ_PATH=" ${OUTPUT_DIR:? } /$PACKAGE_XZ "
354+ PACKAGE_XZ_SHA=$( shasum -a 256 " $PACKAGE_XZ " | cut -f 1 -d ' ' )
355+ PACKAGE_XZ_SIZE=$( get_file_size " $PACKAGE_XZ " )
356+ popd > /dev/null
357+ echo " '$PACKAGE_XZ ' Created! Size: $PACKAGE_XZ_SIZE , SHA-256: $PACKAGE_XZ_SHA "
358+ echo
359+
360+ # Upload ZIP package to release page
361+ echo " Uploading ZIP package to release page ..."
342362PACKAGE_URL=$( git_safe_upload_asset " $PACKAGE_PATH " )
343363echo " Package Uploaded"
344364echo " Download URL: $PACKAGE_URL "
345365echo
346366
367+ # Upload XZ package to release page
368+ echo " Uploading XZ package to release page ..."
369+ PACKAGE_XZ_URL=$( git_safe_upload_asset " $PACKAGE_XZ_PATH " )
370+ echo " Package Uploaded"
371+ echo " Download URL: $PACKAGE_XZ_URL "
372+ echo
373+
374+ # Remove package folder
375+ rm -rf " $PKG_DIR "
376+
377+ # Copy Libs from lib-builder to release in ZIP and XZ
378+
379+ libs_url=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].url" )
380+ libs_sha=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].checksum" | sed ' s/^SHA-256://' )
381+ libs_size=$( cat " $PACKAGE_JSON_TEMPLATE " | jq -r " .packages[0].tools[] | select(.name == \" esp32-arduino-libs\" ) | .systems[0].size" )
382+ echo " Downloading libs from lib-builder ..."
383+ echo " URL: $libs_url "
384+ echo " Expected SHA: $libs_sha "
385+ echo " Expected Size: $libs_size "
386+ echo
387+
388+ echo " Downloading libs from lib-builder ..."
389+ curl -L -o " $OUTPUT_DIR /$LIBS_ZIP " " $libs_url "
390+
391+ # Check SHA and Size
392+ zip_sha=$( sha256sum " $OUTPUT_DIR /$LIBS_ZIP " | awk ' {print $1}' )
393+ zip_size=$( stat -c%s " $OUTPUT_DIR /$LIBS_ZIP " )
394+ echo " Downloaded SHA: $zip_sha "
395+ echo " Downloaded Size: $zip_size "
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+ unzip -q " $OUTPUT_DIR /$LIBS_ZIP " -d " $OUTPUT_DIR "
405+ pushd " $OUTPUT_DIR " > /dev/null
406+ tar -cJf " $LIBS_XZ " " esp32-arduino-libs"
407+ popd > /dev/null
408+
409+ # Upload ZIP and XZ libs to release page
410+
411+ echo " Uploading ZIP libs to release page ..."
412+ LIBS_ZIP_URL=$( git_safe_upload_asset " $OUTPUT_DIR /$LIBS_ZIP " )
413+ echo " ZIP libs Uploaded"
414+ echo " Download URL: $LIBS_ZIP_URL "
415+ echo
416+
417+ echo " Uploading XZ libs to release page ..."
418+ LIBS_XZ_URL=$( git_safe_upload_asset " $OUTPUT_DIR /$LIBS_XZ " )
419+ echo " XZ libs Uploaded"
420+ echo " Download URL: $LIBS_XZ_URL "
421+ echo
422+
423+ # Clean up
424+ rm -rf " ${OUTPUT_DIR:? } /esp32-arduino-libs"
425+ rm -rf " ${OUTPUT_DIR:? } /$LIBS_ZIP "
426+ rm -rf " ${OUTPUT_DIR:? } /$LIBS_XZ "
427+
347428# #
348429# # TEMP WORKAROUND FOR RV32 LONG PATH ON WINDOWS
349430# #
0 commit comments