-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
642 additions
and
116 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,54 +1,33 @@ | ||
#!/bin/bash | ||
|
||
#- set -e | ||
|
||
if [ ! -z "$TRAVIS_TAG" ]; then | ||
echo "No sketch builds & tests required for tagged TravisCI builds, exiting" | ||
exit 0 | ||
fi | ||
# CMake Test | ||
echo -e "travis_fold:start:check_cmakelists" | ||
tools/check_cmakelists.sh | ||
if [ $? -ne 0 ]; then exit 1; fi | ||
echo -e "travis_fold:end:check_cmakelists" | ||
|
||
echo -e "travis_fold:start:sketch_test_env_prepare" | ||
pip install pyserial | ||
wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz | ||
tar xf arduino.tar.xz | ||
mv arduino-nightly $HOME/arduino_ide | ||
mkdir -p $HOME/Arduino/libraries | ||
cd $HOME/arduino_ide/hardware | ||
mkdir espressif | ||
cd espressif | ||
ln -s $TRAVIS_BUILD_DIR esp32 | ||
cd esp32 | ||
git submodule update --init --recursive | ||
cd tools | ||
python get.py | ||
cd $TRAVIS_BUILD_DIR | ||
export PATH="$HOME/arduino_ide:$TRAVIS_BUILD_DIR/tools/xtensa-esp32-elf/bin:$PATH" | ||
source tools/common.sh | ||
echo -e "travis_fold:end:sketch_test_env_prepare" | ||
# ArduinoIDE Test | ||
echo -e "travis_fold:start:prep_arduino_ide" | ||
tools/prep-arduino-ide.sh | ||
if [ $? -ne 0 ]; then exit 1; fi | ||
echo -e "travis_fold:end:prep_arduino_ide" | ||
|
||
echo -e "travis_fold:start:sketch_test" | ||
build_sketches $HOME/arduino_ide $TRAVIS_BUILD_DIR/libraries "-l $HOME/Arduino/libraries" | ||
echo -e "travis_fold:start:test_arduino_ide" | ||
tools/test-arduino-ide.sh | ||
if [ $? -ne 0 ]; then exit 1; fi | ||
echo -e "travis_fold:end:sketch_test" | ||
echo -e "travis_fold:end:test_arduino_ide" | ||
|
||
echo -e "travis_fold:start:size_report" | ||
cat size.log | ||
echo -e "travis_fold:end:size_report" | ||
|
||
echo -e "travis_fold:start:platformio_test_env_prepare" | ||
pip install -U https://github.com/platformio/platformio/archive/develop.zip && \ | ||
platformio platform install https://github.com/platformio/platform-espressif32.git#feature/stage && \ | ||
sed -i 's/https:\/\/github\.com\/espressif\/arduino-esp32\.git/*/' ~/.platformio/platforms/espressif32/platform.json && \ | ||
ln -s $TRAVIS_BUILD_DIR ~/.platformio/packages/framework-arduinoespressif32 | ||
# PlatformIO Test | ||
echo -e "travis_fold:start:prep_platformio" | ||
tools/prep-platformio.sh | ||
if [ $? -ne 0 ]; then exit 1; fi | ||
echo -e "travis_fold:end:platformio_test_env_prepare" | ||
echo -e "travis_fold:end:prep_platformio" | ||
|
||
echo -e "travis_fold:start:platformio_test" | ||
platformio ci --board esp32dev libraries/WiFi/examples/WiFiClient && \ | ||
platformio ci --board esp32dev libraries/WiFiClientSecure/examples/WiFiClientSecure && \ | ||
platformio ci --board esp32dev libraries/BluetoothSerial/examples/SerialToSerialBT && \ | ||
platformio ci --board esp32dev libraries/BLE/examples/BLE_server && \ | ||
platformio ci --board esp32dev libraries/AzureIoT/examples/GetStarted && \ | ||
platformio ci --board esp32dev libraries/ESP32/examples/Camera/CameraWebServer --project-option="board_build.partitions = huge_app.csv" | ||
echo -e "travis_fold:start:test_platformio" | ||
tools/test-platformio.sh | ||
if [ $? -ne 0 ]; then exit 1; fi | ||
echo -e "travis_fold:end:platformio_test" | ||
echo -e "travis_fold:end:test_platformio" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
|
||
pip install pyserial | ||
wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz | ||
tar xf arduino.tar.xz | ||
mv arduino-nightly $HOME/arduino_ide | ||
mkdir -p $HOME/Arduino/libraries | ||
|
||
cd $HOME/arduino_ide/hardware | ||
mkdir espressif | ||
cd espressif | ||
ln -s $TRAVIS_BUILD_DIR esp32 | ||
cd esp32/tools | ||
python get.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
|
||
pip install -U https://github.com/platformio/platformio/archive/develop.zip && \ | ||
python -m platformio platform install https://github.com/platformio/platform-espressif32.git#feature/stage && \ | ||
sed -i 's/https:\/\/github\.com\/espressif\/arduino-esp32\.git/*/' ~/.platformio/platforms/espressif32/platform.json && \ | ||
ln -s $TRAVIS_BUILD_DIR ~/.platformio/packages/framework-arduinoespressif32 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
#!/bin/bash | ||
|
||
CHUNK_INDEX=$1 | ||
CHUNKS_CNT=$2 | ||
if [ "$#" -lt 2 ]; then | ||
echo "Building all sketches" | ||
CHUNK_INDEX=0 | ||
CHUNKS_CNT=1 | ||
fi | ||
if [ "$CHUNKS_CNT" -le 0 ]; then | ||
echo "Chunks count must be positive number" | ||
exit 1 | ||
fi | ||
if [ "$CHUNK_INDEX" -ge "$CHUNKS_CNT" ]; then | ||
echo "Chunk index must be less than chunks count" | ||
exit 1 | ||
fi | ||
|
||
export ARDUINO_IDE_PATH=$HOME/arduino_ide | ||
export ARDUINO_LIB_PATH=$HOME/Arduino/libraries | ||
export EXAMPLES_PATH=$TRAVIS_BUILD_DIR/libraries | ||
export EXAMPLES_BUILD_DIR=$TRAVIS_BUILD_DIR/build.tmp | ||
export EXAMPLES_BUILD_CMD="python tools/build.py -b esp32 -v -k -p $EXAMPLES_BUILD_DIR -l $ARDUINO_LIB_PATH " | ||
export EXAMPLES_SIZE_BIN=$TRAVIS_BUILD_DIR/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-size | ||
|
||
function print_size_info() | ||
{ | ||
elf_file=$1 | ||
|
||
if [ -z "$elf_file" ]; then | ||
printf "sketch iram0.text flash.text flash.rodata dram0.data dram0.bss dram flash\n" | ||
return 0 | ||
fi | ||
|
||
elf_name=$(basename $elf_file) | ||
sketch_name="${elf_name%.*}" | ||
# echo $sketch_name | ||
declare -A segments | ||
while read -a tokens; do | ||
seg=${tokens[0]} | ||
seg=${seg//./} | ||
size=${tokens[1]} | ||
addr=${tokens[2]} | ||
if [ "$addr" -eq "$addr" -a "$addr" -ne "0" ] 2>/dev/null; then | ||
segments[$seg]=$size | ||
fi | ||
done < <($EXAMPLES_SIZE_BIN --format=sysv $elf_file) | ||
|
||
total_ram=$((${segments[dram0data]} + ${segments[dram0bss]})) | ||
total_flash=$((${segments[iram0text]} + ${segments[flashtext]} + ${segments[dram0data]} + ${segments[flashrodata]})) | ||
printf "%-32s %-8d %-8d %-8d %-8d %-8d %-8d %-8d\n" $sketch_name ${segments[iram0text]} ${segments[flashtext]} ${segments[flashrodata]} ${segments[dram0data]} ${segments[dram0bss]} $total_ram $total_flash | ||
return 0 | ||
} | ||
|
||
function build_sketch() | ||
{ | ||
local sketch=$1 | ||
echo -e "\n------------ Building $sketch ------------\n"; | ||
rm -rf $EXAMPLES_BUILD_DIR/* | ||
time ($EXAMPLES_BUILD_CMD $sketch >build.log) | ||
local result=$? | ||
if [ $result -ne 0 ]; then | ||
echo "Build failed ($1)" | ||
echo "Build log:" | ||
cat build.log | ||
return $result | ||
fi | ||
rm build.log | ||
return 0 | ||
} | ||
|
||
function count_sketches() | ||
{ | ||
local sketches=$(find $EXAMPLES_PATH -name *.ino) | ||
local sketchnum=0 | ||
rm -rf sketches.txt | ||
for sketch in $sketches; do | ||
local sketchdir=$(dirname $sketch) | ||
local sketchdirname=$(basename $sketchdir) | ||
local sketchname=$(basename $sketch) | ||
if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then | ||
continue | ||
fi; | ||
if [[ -f "$sketchdir/.test.skip" ]]; then | ||
continue | ||
fi | ||
echo $sketch >> sketches.txt | ||
sketchnum=$(($sketchnum + 1)) | ||
done | ||
return $sketchnum | ||
} | ||
|
||
function build_sketches() | ||
{ | ||
mkdir -p $EXAMPLES_BUILD_DIR | ||
local chunk_idex=$1 | ||
local chunks_num=$2 | ||
count_sketches | ||
local sketchcount=$? | ||
local sketches=$(cat 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 )) | ||
fi | ||
|
||
local start_index=$(( $chunk_idex * $chunk_size )) | ||
if [ "$sketchcount" -le "$start_index" ]; then | ||
echo "Skipping job" | ||
return 0 | ||
fi | ||
|
||
local end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size )) | ||
if [ "$end_index" -gt "$sketchcount" ]; then | ||
end_index=$sketchcount | ||
fi | ||
|
||
local start_num=$(( $start_index + 1 )) | ||
#echo -e "Sketches: \n$sketches\n" | ||
echo "Found $sketchcount Sketches"; | ||
echo "Chunk Count : $chunks_num" | ||
echo "Chunk Size : $chunk_size" | ||
echo "Start Sketch: $start_num" | ||
echo "End Sketch : $end_index" | ||
|
||
local sketchnum=0 | ||
print_size_info >size.log | ||
for sketch in $sketches; do | ||
local sketchdir=$(dirname $sketch) | ||
local sketchdirname=$(basename $sketchdir) | ||
local sketchname=$(basename $sketch) | ||
if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then | ||
#echo "Skipping $sketch, beacause it is not the main sketch file"; | ||
continue | ||
fi; | ||
if [[ -f "$sketchdir/.test.skip" ]]; then | ||
#echo "Skipping $sketch marked"; | ||
continue | ||
fi | ||
sketchnum=$(($sketchnum + 1)) | ||
if [ "$sketchnum" -le "$start_index" ]; then | ||
#echo "Skipping $sketch index low" | ||
continue | ||
fi | ||
if [ "$sketchnum" -gt "$end_index" ]; then | ||
#echo "Skipping $sketch index high" | ||
continue | ||
fi | ||
build_sketch $sketch | ||
local result=$? | ||
if [ $result -ne 0 ]; then | ||
return $result | ||
fi | ||
print_size_info $EXAMPLES_BUILD_DIR/*.elf >>size.log | ||
done | ||
return 0 | ||
} | ||
|
||
build_sketches $CHUNK_INDEX $CHUNKS_CNT | ||
|
||
if [ $? -ne 0 ]; then exit 1; fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/bin/bash | ||
|
||
python -m platformio ci --board esp32dev libraries/WiFi/examples/WiFiClient && \ | ||
python -m platformio ci --board esp32dev libraries/WiFiClientSecure/examples/WiFiClientSecure && \ | ||
python -m platformio ci --board esp32dev libraries/BluetoothSerial/examples/SerialToSerialBT && \ | ||
python -m platformio ci --board esp32dev libraries/BLE/examples/BLE_server && \ | ||
python -m platformio ci --board esp32dev libraries/AzureIoT/examples/GetStarted && \ | ||
python -m platformio ci --board esp32dev libraries/ESP32/examples/Camera/CameraWebServer --project-option="board_build.partitions = huge_app.csv" | ||
if [ $? -ne 0 ]; then exit 1; fi |