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: matrix:
include: include:
- env: - env:
- BUILD_TYPE=build - BUILD_TYPE=build_even
- env:
- BUILD_TYPE=build_odd
- env: - env:
- BUILD_TYPE=platformio - BUILD_TYPE=platformio
- env: - env:

View File

@ -39,12 +39,19 @@ function build_sketches()
local srcpath=$2 local srcpath=$2
local build_arg=$3 local build_arg=$3
local build_dir=build.tmp local build_dir=build.tmp
local build_mod=$4
local build_rem=$5
mkdir -p $build_dir 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 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 print_size_info >size.log
export ARDUINO_IDE_PATH=$arduino export ARDUINO_IDE_PATH=$arduino
local testcnt=0
for sketch in $sketches; do 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/* rm -rf $build_dir/*
local sketchdir=$(dirname $sketch) local sketchdir=$(dirname $sketch)
local sketchdirname=$(basename $sketchdir) local sketchdirname=$(basename $sketchdir)
@ -202,9 +209,12 @@ function install_arduino()
function build_sketches_with_arduino() function build_sketches_with_arduino()
{ {
local build_mod=$1
local build_rem=$2
# Compile sketches # Compile sketches
echo -e "travis_fold:start:sketch_test" 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" echo -e "travis_fold:end:sketch_test"
# Generate size report # Generate size report
@ -239,7 +249,13 @@ fi
if [ "$BUILD_TYPE" = "build" ]; then if [ "$BUILD_TYPE" = "build" ]; then
install_arduino 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 elif [ "$BUILD_TYPE" = "platformio" ]; then
# PlatformIO # PlatformIO
install_platformio install_platformio