* Rework the lib-builder for ESP-IDF v5.1 * Update package json with tolls matching the ESP-IDF version * fix: rainmaker examples crashing on s3 due to low stack memory. (#106) (#107) * Update scripts with the latest requirements * Update configs + SR Support * Add esp-elf-gdp to the list of packages * Fix RainMaker builds and new sr models path * Temporary force arduino branch for CI to work * fix target branch * Delete esp-dl component manifest for requiring IDF 4.4.x * Temporary changes to allow Cron CI to run * Support builds based on ESP-IDF tag * Push to esp32-arduino-libs * Update repository_dispatch.sh * Rework scripts to allow build when either dst needs it * Github complains when pushing to the libs repo * Authenticate to the libs repo * Attempt at splitting SDK from Arduino * Archive only the result and reorder deploy commands * Update cron.sh * Fix script and zip paths * Fix download URL and json merger * Change sdk folder structure and fix json generation * Switch output folder from sdk to esp32-arduino-libs * arduino_tinyusb: compile support for DFU mode (#116) * Update PlatformIO build script templates (#118) Adds support for new package with precompiled SDK libraries * Autogenerate PlatformIO manifest file for prebuilt SDK libs (#119) * Autogenerate PlatformIO manifest file for prebuilt SDK libs - Add a special Python script that generates "package.json" with IDF revision from the "version.txt" according to SemVer * Tidy up * Refactor manifest generator Now IDF version and commit hash are passed directly from Git client instead of reading from a pregenerated "version.txt" file * Move IDF definitions to be available with any build * Use more components from registry and add mp3 decoder * esp-sr component requires clearing before each build * revert ESP_SR from component manager * Build ESP_SR only for ESP32-S3 for now * [TinyUSB] Update esp32sx dcd and add dwc2 option * Workaround for recent change in ESP-Insights * Add initial support for ESP32-C6 * Run build tests on ESP32-C6 * Remove -mlongcalls for non-xtensa chips * Temp fix for ESP-Insights on C6 * Add support for ESP32H2 * Added tflite-micro component (#128) * Update build badge in README.md * Added tflite-micro component --------- Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com> * Make cron rebuild the libs if they need to be pushed to Arduino For when we change something in the lib-builder, but no new updates are available in ESP-IDF * Update build actions * Fix permissions * Do not build for obsolete Flash modes * Try separate detect for cron builds * Add permissions to github api * Try more basic commit detection * another try to pass vars and get commit * Update push.yml * Update config.sh * Enable builds again * Update build.sh * Combine the artifacts from all jobs * fix and test deploy check * Update push.yml * Disable Memprot to allow loading external elfs * Fix archive name * Disable coredump to flash * Enable SPI ETH KSZ8851SNL * Add temporary support for Arduino SPI Ethernet * Add a temporary fix for relative include in BT lib * Enable Classic BT HID Host and Device for ESP32 * Revert "Enable Classic BT HID Host and Device for ESP32" This reverts commit aa0040ad271d00ac507fd2b478ee143b6c118615. * C6 was added to ESP-SR * Update Ethernet and remove SR workaround * Pin RainMaker version * Update target branch * Add back cron.sh --------- Co-authored-by: Sanket Wadekar <67091512+sanketwadekar@users.noreply.github.com> Co-authored-by: Luca Burelli <pil@iol.it> Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
158 lines
4.8 KiB
Bash
Executable file
158 lines
4.8 KiB
Bash
Executable file
#!/bin/bash
|
|
source ./tools/config.sh
|
|
|
|
if [ -x $GITHUB_TOKEN ]; then
|
|
echo "ERROR: GITHUB_TOKEN was not defined"
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -d "$AR_COMPS/arduino" ]; then
|
|
echo "ERROR: Target arduino folder does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
# setup git for pushing
|
|
git config --global github.user "$GITHUB_ACTOR"
|
|
git config --global user.name "$GITHUB_ACTOR"
|
|
git config --global user.email "$GITHUB_ACTOR@github.com"
|
|
|
|
#
|
|
# UPDATE FILES
|
|
#
|
|
|
|
#
|
|
# esp32-arduino-libs
|
|
#
|
|
|
|
if [ $LIBS_HAS_COMMIT == "0" ] || [ $AR_HAS_COMMIT == "0" ]; then
|
|
cd "$AR_ROOT"
|
|
# create branch if necessary
|
|
if [ "$LIBS_HAS_BRANCH" == "1" ]; then
|
|
echo "Branch '$AR_NEW_BRANCH_NAME' Already Exists"
|
|
echo "Switching to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
|
|
git -C "$IDF_LIBS_DIR" checkout $AR_NEW_BRANCH_NAME
|
|
else
|
|
echo "Creating esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
|
|
git -C "$IDF_LIBS_DIR" checkout -b $AR_NEW_BRANCH_NAME
|
|
fi
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed"
|
|
exit 1
|
|
fi
|
|
|
|
# make changes to the files
|
|
echo "Patching files in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
|
|
rm -rf $IDF_LIBS_DIR/* && cp -Rf $AR_TOOLS/esp32-arduino-libs/* $IDF_LIBS_DIR/
|
|
|
|
cd $IDF_LIBS_DIR
|
|
if [ -f "README.md" ]; then
|
|
rm -rf "README.md"
|
|
fi
|
|
|
|
# did any of the files change?
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "Pushing changes to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
|
|
git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed"
|
|
exit 1
|
|
fi
|
|
IDF_LIBS_COMMIT=`git rev-parse --verify HEAD`
|
|
IDF_LIBS_DL_URL="https://codeload.github.com/espressif/esp32-arduino-libs/zip/$IDF_LIBS_COMMIT"
|
|
# ToDo: this URL needs to get into Arduino's package.json
|
|
|
|
# Download the file
|
|
filename="esp32-arduino-libs-$IDF_LIBS_COMMIT.zip"
|
|
curl -s -o "$filename" "$IDF_LIBS_DL_URL"
|
|
|
|
# Check if the download was successful
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error downloading file from $IDF_LIBS_DL_URL"
|
|
exit 1
|
|
fi
|
|
|
|
# Calculate the size in bytes and SHA-256 sum
|
|
size=$(stat -c%s "$filename")
|
|
sha256sum=$(sha256sum "$filename" | awk '{print $1}')
|
|
|
|
# Clean up the downloaded file
|
|
rm "$filename"
|
|
|
|
# Print the results
|
|
echo "Tool: esp32-arduino-libs"
|
|
echo "Version: $LIBS_VERSION"
|
|
echo "URL: $IDF_LIBS_DL_URL"
|
|
echo "File: $filename"
|
|
echo "Size: $size bytes"
|
|
echo "SHA-256: $sha256sum"
|
|
echo "JSON: $AR_OUT/package_esp32_index.template.json"
|
|
cd "$AR_ROOT"
|
|
python3 tools/add_sdk_json.py -j "$AR_OUT/package_esp32_index.template.json" -n "esp32-arduino-libs" -v "$LIBS_VERSION" -u "$IDF_LIBS_DL_URL" -f "$filename" -s "$size" -c "$sha256sum"
|
|
if [ $? -ne 0 ]; then exit 1; fi
|
|
|
|
else
|
|
echo "No changes in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'"
|
|
if [ $LIBS_HAS_BRANCH == "0" ]; then
|
|
echo "Delete created branch '$AR_NEW_BRANCH_NAME'"
|
|
git branch -d $AR_NEW_BRANCH_NAME
|
|
fi
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# esp32-arduino
|
|
#
|
|
|
|
if [ $AR_HAS_COMMIT == "0" ]; then
|
|
cd "$AR_ROOT"
|
|
# create or checkout the branch
|
|
if [ ! $AR_HAS_BRANCH == "0" ]; then
|
|
echo "Switching to arduino branch '$AR_NEW_BRANCH_NAME'..."
|
|
git -C "$AR_COMPS/arduino" checkout $AR_NEW_BRANCH_NAME
|
|
else
|
|
echo "Creating arduino branch '$AR_NEW_BRANCH_NAME'..."
|
|
git -C "$AR_COMPS/arduino" checkout -b $AR_NEW_BRANCH_NAME
|
|
fi
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed"
|
|
exit 1
|
|
fi
|
|
|
|
# make changes to the files
|
|
echo "Patching files in branch '$AR_NEW_BRANCH_NAME'..."
|
|
rm -rf "$AR_COMPS/arduino/package/package_esp32_index.template.json" && cp -f "$AR_OUT/package_esp32_index.template.json" "$AR_COMPS/arduino/package/package_esp32_index.template.json"
|
|
|
|
cd $AR_COMPS/arduino
|
|
|
|
# did any of the files change?
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "Pushing changes to branch '$AR_NEW_BRANCH_NAME'..."
|
|
git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "No changes in branch '$AR_NEW_BRANCH_NAME'"
|
|
if [ $AR_HAS_BRANCH == "0" ]; then
|
|
echo "Delete created branch '$AR_NEW_BRANCH_NAME'"
|
|
git branch -d $AR_NEW_BRANCH_NAME
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
# CREATE PULL REQUEST
|
|
if [ "$AR_HAS_PR" == "0" ]; then
|
|
echo "Creating PR '$AR_NEW_PR_TITLE'..."
|
|
pr_created=`git_create_pr "$AR_NEW_BRANCH_NAME" "$AR_NEW_PR_TITLE" "$AR_PR_TARGET_BRANCH"`
|
|
if [ $pr_created == "0" ]; then
|
|
echo "ERROR: Failed to create PR '$AR_NEW_PR_TITLE': "`echo "$git_create_pr_res" | jq -r '.message'`": "`echo "$git_create_pr_res" | jq -r '.errors[].message'`
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "PR '$AR_NEW_PR_TITLE' Already Exists"
|
|
fi
|
|
fi
|
|
|
|
exit 0
|