diff --git a/.github/scripts/install-arduino-core-esp32.sh b/.github/scripts/install-arduino-core-esp32.sh index 0519313246e..cf1026d6a71 100755 --- a/.github/scripts/install-arduino-core-esp32.sh +++ b/.github/scripts/install-arduino-core-esp32.sh @@ -2,39 +2,33 @@ export ARDUINO_ESP32_PATH="$ARDUINO_USR_PATH/hardware/espressif/esp32" if [ ! -d "$ARDUINO_ESP32_PATH" ]; then - echo "Installing ESP32 Arduino Core in '$ARDUINO_ESP32_PATH'..." + echo "Installing ESP32 Arduino Core ..." script_init_path="$PWD" - mkdir -p "$ARDUINO_USR_PATH/hardware/espressif" && \ + mkdir -p "$ARDUINO_USR_PATH/hardware/espressif" cd "$ARDUINO_USR_PATH/hardware/espressif" - if [ $? -ne 0 ]; then exit 1; fi + + echo "Installing Python Serial ..." + pip install pyserial > /dev/null + + if [ "$OS_IS_WINDOWS" == "1" ]; then + echo "Installing Python Requests ..." + pip install requests > /dev/null + fi if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then - echo "Linking Core..." && \ + echo "Linking Core..." ln -s $GITHUB_WORKSPACE esp32 else - echo "Cloning Core Repository..." && \ + echo "Cloning Core Repository..." git clone https://github.com/espressif/arduino-esp32.git esp32 > /dev/null 2>&1 - if [ $? -ne 0 ]; then echo "ERROR: GIT clone failed"; exit 1; fi fi - cd esp32 && \ - echo "Updating Submodules..." && \ + echo "Updating Submodules ..." + cd esp32 git submodule update --init --recursive > /dev/null 2>&1 - if [ $? -ne 0 ]; then echo "ERROR: Submodule update failed"; exit 1; fi - - echo "Installing Python Serial..." && \ - pip install pyserial > /dev/null - if [ $? -ne 0 ]; then echo "ERROR: Install failed"; exit 1; fi - - if [ "$OS_IS_WINDOWS" == "1" ]; then - echo "Installing Python Requests..." - pip install requests > /dev/null - if [ $? -ne 0 ]; then echo "ERROR: Install failed"; exit 1; fi - fi - echo "Installing Platform Tools..." + echo "Installing Platform Tools ..." cd tools && python get.py - if [ $? -ne 0 ]; then echo "ERROR: Download failed"; exit 1; fi cd $script_init_path echo "ESP32 Arduino has been installed in '$ARDUINO_ESP32_PATH'" diff --git a/.github/scripts/install-arduino-ide.sh b/.github/scripts/install-arduino-ide.sh index 1ee02bf73c2..7950a49f3b3 100755 --- a/.github/scripts/install-arduino-ide.sh +++ b/.github/scripts/install-arduino-ide.sh @@ -46,28 +46,23 @@ else fi if [ ! -d "$ARDUINO_IDE_PATH" ]; then - echo "Installing Arduino IDE on $OS_NAME..." - echo "Downloading 'arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT' to 'arduino.$ARCHIVE_FORMAT'..." + echo "Installing Arduino IDE on $OS_NAME ..." + echo "Downloading 'arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT' to 'arduino.$ARCHIVE_FORMAT' ..." if [ "$OS_IS_LINUX" == "1" ]; then wget -O "arduino.$ARCHIVE_FORMAT" "https://www.arduino.cc/download.php?f=/arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT" > /dev/null 2>&1 - if [ $? -ne 0 ]; then echo "ERROR: Download failed"; exit 1; fi - echo "Extracting 'arduino.$ARCHIVE_FORMAT'..." + echo "Extracting 'arduino.$ARCHIVE_FORMAT' ..." tar xf "arduino.$ARCHIVE_FORMAT" > /dev/null - if [ $? -ne 0 ]; then exit 1; fi mv arduino-nightly "$ARDUINO_IDE_PATH" else curl -o "arduino.$ARCHIVE_FORMAT" -L "https://www.arduino.cc/download.php?f=/arduino-nightly-$OS_NAME.$ARCHIVE_FORMAT" > /dev/null 2>&1 - if [ $? -ne 0 ]; then echo "ERROR: Download failed"; exit 1; fi - echo "Extracting 'arduino.$ARCHIVE_FORMAT'..." + echo "Extracting 'arduino.$ARCHIVE_FORMAT' ..." unzip "arduino.$ARCHIVE_FORMAT" > /dev/null - if [ $? -ne 0 ]; then exit 1; fi if [ "$OS_IS_MACOS" == "1" ]; then mv "Arduino.app" "/Applications/Arduino.app" else mv arduino-nightly "$ARDUINO_IDE_PATH" fi fi - if [ $? -ne 0 ]; then exit 1; fi rm -rf "arduino.$ARCHIVE_FORMAT" mkdir -p "$ARDUINO_USR_PATH/libraries" @@ -95,7 +90,7 @@ function build_sketch(){ # build_sketch <fqbn> <path-to-ino> [extra-options] fi echo "" - echo "Compiling '"$(basename "$sketch")"'..." + echo "Compiling '"$(basename "$sketch")"' ..." mkdir -p "$ARDUINO_BUILD_DIR" mkdir -p "$ARDUINO_CACHE_DIR" $ARDUINO_IDE_PATH/arduino-builder -compile -logger=human -core-api-version=10810 \ @@ -115,9 +110,13 @@ function build_sketch(){ # build_sketch <fqbn> <path-to-ino> [extra-options] function count_sketches() # count_sketches <examples-path> { local examples="$1" + rm -rf sketches.txt + if [ ! -d "$examples" ]; then + touch sketches.txt + return 0 + fi local sketches=$(find $examples -name *.ino) local sketchnum=0 - rm -rf sketches.txt for sketch in $sketches; do local sketchdir=$(dirname $sketch) local sketchdirname=$(basename $sketchdir) @@ -163,8 +162,10 @@ function build_sketches() # build_sketches <fqbn> <examples-path> <chunk> <total return 1 fi + set +e count_sketches "$examples" local sketchcount=$? + set -e local sketches=$(cat sketches.txt) rm -rf sketches.txt diff --git a/.github/scripts/install-platformio-esp32.sh b/.github/scripts/install-platformio-esp32.sh old mode 100644 new mode 100755 index e822a5ca358..ce6de4a2ef4 --- a/.github/scripts/install-platformio-esp32.sh +++ b/.github/scripts/install-platformio-esp32.sh @@ -2,40 +2,34 @@ export PLATFORMIO_ESP32_PATH="$HOME/.platformio/packages/framework-arduinoespressif32" -echo "Installing Python Wheel..." +echo "Installing Python Wheel ..." pip install wheel > /dev/null 2>&1 -if [ $? -ne 0 ]; then echo "ERROR: Install failed"; exit 1; fi -echo "Installing PlatformIO..." +echo "Installing PlatformIO ..." pip install -U https://github.com/platformio/platformio/archive/develop.zip > /dev/null 2>&1 -if [ $? -ne 0 ]; then echo "ERROR: Install failed"; exit 1; fi -echo "Installing Platform ESP32..." +echo "Installing Platform ESP32 ..." python -m platformio platform install https://github.com/platformio/platform-espressif32.git#feature/stage > /dev/null 2>&1 -if [ $? -ne 0 ]; then echo "ERROR: Install failed"; exit 1; fi -echo "Replacing the framework version..." +echo "Replacing the framework version ..." if [[ "$OSTYPE" == "darwin"* ]]; then - sed 's/https:\/\/github\.com\/espressif\/arduino-esp32\.git/*/' "$HOME/.platformio/platforms/espressif32/platform.json" > "platform.json" && \ + sed 's/https:\/\/github\.com\/espressif\/arduino-esp32\.git/*/' "$HOME/.platformio/platforms/espressif32/platform.json" > "platform.json" mv -f "platform.json" "$HOME/.platformio/platforms/espressif32/platform.json" else sed -i 's/https:\/\/github\.com\/espressif\/arduino-esp32\.git/*/' "$HOME/.platformio/platforms/espressif32/platform.json" fi -if [ $? -ne 0 ]; then echo "ERROR: Replace failed"; exit 1; fi if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then - echo "Linking Core..." && \ + echo "Linking Core..." ln -s $GITHUB_WORKSPACE "$PLATFORMIO_ESP32_PATH" else - echo "Cloning Core Repository..." && \ + echo "Cloning Core Repository ..." git clone https://github.com/espressif/arduino-esp32.git "$PLATFORMIO_ESP32_PATH" > /dev/null 2>&1 - if [ $? -ne 0 ]; then echo "ERROR: GIT clone failed"; exit 1; fi fi echo "PlatformIO for ESP32 has been installed" echo "" - function build_pio_sketch(){ # build_pio_sketch <board> <path-to-ino> if [ "$#" -lt 2 ]; then echo "ERROR: Illegal number of parameters" @@ -43,20 +37,24 @@ function build_pio_sketch(){ # build_pio_sketch <board> <path-to-ino> return 1 fi - local board="$1" - local sketch="$2" - local sketch_dir=$(dirname "$sketch") - echo "" - echo "Compiling '"$(basename "$sketch")"'..." - python -m platformio ci --board "$board" "$sketch_dir" --project-option="board_build.partitions = huge_app.csv" + local board="$1" + local sketch="$2" + local sketch_dir=$(dirname "$sketch") + echo "" + echo "Compiling '"$(basename "$sketch")"' ..." + python -m platformio ci --board "$board" "$sketch_dir" --project-option="board_build.partitions = huge_app.csv" } function count_sketches() # count_sketches <examples-path> { - local examples="$1" + local examples="$1" + rm -rf sketches.txt + if [ ! -d "$examples" ]; then + touch sketches.txt + return 0 + fi local sketches=$(find $examples -name *.ino) local sketchnum=0 - rm -rf sketches.txt for sketch in $sketches; do local sketchdir=$(dirname $sketch) local sketchdirname=$(basename $sketchdir) @@ -91,35 +89,37 @@ function build_pio_sketches() # build_pio_sketches <board> <examples-path> <chun chunks_num="1" fi - if [ "$chunks_num" -le 0 ]; then - echo "ERROR: Chunks count must be positive number" - return 1 - fi - if [ "$chunk_idex" -ge "$chunks_num" ]; then - echo "ERROR: Chunk index must be less than chunks count" - return 1 - fi + if [ "$chunks_num" -le 0 ]; then + echo "ERROR: Chunks count must be positive number" + return 1 + fi + if [ "$chunk_idex" -ge "$chunks_num" ]; then + echo "ERROR: Chunk index must be less than chunks count" + return 1 + fi + set +e count_sketches "$examples" local sketchcount=$? + set -e local sketches=$(cat sketches.txt) rm -rf sketches.txt local chunk_size=$(( $sketchcount / $chunks_num )) local all_chunks=$(( $chunks_num * $chunk_size )) if [ "$all_chunks" -lt "$sketchcount" ]; then - chunk_size=$(( $chunk_size + 1 )) + chunk_size=$(( $chunk_size + 1 )) fi local start_index=$(( $chunk_idex * $chunk_size )) if [ "$sketchcount" -le "$start_index" ]; then - echo "Skipping job" - return 0 + echo "Skipping job" + return 0 fi local end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size )) if [ "$end_index" -gt "$sketchcount" ]; then - end_index=$sketchcount + end_index=$sketchcount fi local start_num=$(( $start_index + 1 )) @@ -141,7 +141,7 @@ function build_pio_sketches() # build_pio_sketches <board> <examples-path> <chun sketchnum=$(($sketchnum + 1)) if [ "$sketchnum" -le "$start_index" ] \ || [ "$sketchnum" -gt "$end_index" ]; then - continue + continue fi build_pio_sketch "$board" "$sketch" local result=$? diff --git a/.github/scripts/on-push.sh b/.github/scripts/on-push.sh index 96b88bb8765..e0e14ec2b26 100755 --- a/.github/scripts/on-push.sh +++ b/.github/scripts/on-push.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + if [ ! -z "$TRAVIS_TAG" ]; then echo "Skipping Test: Tagged build" exit 0 @@ -52,7 +54,6 @@ if [ "$BUILD_PIO" -eq 0 ]; then # CMake Test if [ "$CHUNK_INDEX" -eq 0 ]; then bash "$ARDUINO_ESP32_PATH/.github/scripts/check-cmakelists.sh" - if [ $? -ne 0 ]; then exit 1; fi fi build_sketches "$FQBN" "$ARDUINO_ESP32_PATH/libraries" "$CHUNK_INDEX" "$CHUNKS_CNT" fi @@ -68,4 +69,3 @@ else build_pio_sketch "$BOARD" "$PLATFORMIO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" #build_pio_sketches esp32dev "$PLATFORMIO_ESP32_PATH/libraries" fi -if [ $? -ne 0 ]; then exit 1; fi