1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-07 16:23:38 +03:00

Add build_even/odd types to split Arduino tests (#4737)

Arduino builds are now taking 49 minutes or more, and failing due to
Travis timeouts.

Split the Arduino build task into even and odd half, where each job
will build every other test.  This will reduce any test's runtime
by 50% and speed up checks to avoid the timeout.
This commit is contained in:
Earle F. Philhower, III 2018-05-21 11:34:15 -07:00 committed by Develo
parent 83ab03436f
commit a1a9b99af6
2 changed files with 22 additions and 4 deletions

View File

@ -10,7 +10,9 @@ cache:
matrix:
include:
- env:
- BUILD_TYPE=build
- BUILD_TYPE=build_even
- env:
- BUILD_TYPE=build_odd
- env:
- BUILD_TYPE=platformio
- env:

View File

@ -39,12 +39,19 @@ function build_sketches()
local srcpath=$2
local build_arg=$3
local build_dir=build.tmp
local build_mod=$4
local build_rem=$5
mkdir -p $build_dir
local build_cmd="python tools/build.py -b generic -v -w all -s 4M1M -v -k -p $PWD/$build_dir $build_arg "
local sketches=$(find $srcpath -name *.ino)
local sketches=$(find $srcpath -name *.ino | sort)
print_size_info >size.log
export ARDUINO_IDE_PATH=$arduino
local testcnt=0
for sketch in $sketches; do
testcnt=$(( ($testcnt + 1) % $build_mod ))
if [ $testcnt -ne $build_rem ]; then
continue # Not ours to do
fi
rm -rf $build_dir/*
local sketchdir=$(dirname $sketch)
local sketchdirname=$(basename $sketchdir)
@ -202,9 +209,12 @@ function install_arduino()
function build_sketches_with_arduino()
{
local build_mod=$1
local build_rem=$2
# Compile sketches
echo -e "travis_fold:start:sketch_test"
build_sketches $HOME/arduino_ide $TRAVIS_BUILD_DIR/libraries "-l $HOME/Arduino/libraries"
build_sketches $HOME/arduino_ide $TRAVIS_BUILD_DIR/libraries "-l $HOME/Arduino/libraries" $1 $2
echo -e "travis_fold:end:sketch_test"
# Generate size report
@ -239,7 +249,13 @@ fi
if [ "$BUILD_TYPE" = "build" ]; then
install_arduino
build_sketches_with_arduino
build_sketches_with_arduino 1 0
elif [ "$BUILD_TYPE" = "build_even" ]; then
install_arduino
build_sketches_with_arduino 2 0
elif [ "$BUILD_TYPE" = "build_odd" ]; then
install_arduino
build_sketches_with_arduino 2 1
elif [ "$BUILD_TYPE" = "platformio" ]; then
# PlatformIO
install_platformio