Run tests in parallel (they are lightweight), on CI and vagrant boxes

By default 20 parllel jobs, but one caveat for travis-ci, osx boxes
there slower and have less resources then linux (discovered during
testing), so limit number of parallel jobs to 4 there, and also install
travis_wait, so that travis-ci will not fail the build when there is no
output for 10 minutes, since for osx boxes it is very likely.

Refs: travis-ci/travis-ci@7202
This commit is contained in:
Azat Khuzhin 2017-01-20 16:31:17 +03:00
parent 2a67f4fc12
commit 108b5fef41
3 changed files with 26 additions and 17 deletions

View File

@ -28,6 +28,8 @@ before_install:
- if [ -n "$COVERALLS" ]; then - if [ -n "$COVERALLS" ]; then
pip install --user cpp-coveralls; pip install --user cpp-coveralls;
fi fi
- export JOBS=20
- export TIMEOUT=50
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew update; brew update;
brew uninstall libtool && brew install libtool; brew uninstall libtool && brew install libtool;
@ -44,6 +46,8 @@ before_install:
export export
CFLAGS=-I$CMAKE_INCLUDE_PATH CFLAGS=-I$CMAKE_INCLUDE_PATH
LDFLAGS=-L$CMAKE_LIBRARY_PATH; LDFLAGS=-L$CMAKE_LIBRARY_PATH;
export JOBS=4;
fi fi
addons: addons:
@ -65,14 +69,18 @@ script:
./autogen.sh && ./autogen.sh &&
./configure $EVENT_CONFIGURE_OPTIONS && ./configure $EVENT_CONFIGURE_OPTIONS &&
make && make &&
make verify; travis_wait $TIMEOUT make -j $JOBS verify;
fi fi
- if [ "$EVENT_BUILD_METHOD" = "cmake" ]; then - if [ "$EVENT_BUILD_METHOD" = "cmake" ]; then
export
CTEST_PARALLEL_LEVEL=$JOBS
CTEST_OUTPUT_ON_FAILURE=1;
mkdir build && mkdir build &&
cd build && cd build &&
cmake .. $EVENT_CMAKE_OPTIONS && cmake .. $EVENT_CMAKE_OPTIONS &&
cmake --build . && travis_wait $TIMEOUT
CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target verify; cmake --build . --target verify;
fi fi
after_script: after_script:

26
Vagrantfile vendored
View File

@ -61,7 +61,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -71,7 +71,7 @@ Vagrant.configure("2") do |config|
cd /vagrant cd /vagrant
./autogen.sh ./autogen.sh
./configure ./configure
make -j4 verify make -j20 verify
SHELL SHELL
end end
end end
@ -102,7 +102,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -112,7 +112,7 @@ Vagrant.configure("2") do |config|
cd /vagrant cd /vagrant
./autogen.sh ./autogen.sh
./configure ./configure
make -j4 verify make -j20 verify
SHELL SHELL
end end
end end
@ -141,7 +141,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -151,7 +151,7 @@ Vagrant.configure("2") do |config|
cd /vagrant cd /vagrant
./autogen.sh ./autogen.sh
./configure ./configure
make -j4 verify make -j20 verify
SHELL SHELL
end end
end end
@ -200,7 +200,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -212,7 +212,7 @@ Vagrant.configure("2") do |config|
cd ~/vagrant cd ~/vagrant
./autogen.sh ./autogen.sh
MAKE=gmake ./configure MAKE=gmake ./configure
gmake -j4 verify gmake -j20 verify
SHELL SHELL
end end
end end
@ -249,7 +249,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -263,7 +263,7 @@ Vagrant.configure("2") do |config|
cd /vagrant cd /vagrant
./autogen.sh ./autogen.sh
./configure ./configure
make -j4 verify make -j20 verify
SHELL SHELL
end end
end end
@ -300,7 +300,7 @@ Vagrant.configure("2") do |config|
export CTEST_TEST_TIMEOUT=1800 export CTEST_TEST_TIMEOUT=1800
export CTEST_OUTPUT_ON_FAILURE=1 export CTEST_OUTPUT_ON_FAILURE=1
export CTEST_PARALLEL_LEVEL=10 export CTEST_PARALLEL_LEVEL=20
cmake --build . --target verify cmake --build . --target verify
SHELL SHELL
end end
@ -310,7 +310,7 @@ Vagrant.configure("2") do |config|
cd /vagrant cd /vagrant
./autogen.sh ./autogen.sh
./configure ./configure
make -j4 verify make -j20 verify
SHELL SHELL
end end
end end
@ -390,7 +390,7 @@ Vagrant.configure("2") do |config|
bash -lc "echo 'C:/OpenSSL-Win32 /ssl ntfs binary 0 0' >> /etc/fstab" bash -lc "echo 'C:/OpenSSL-Win32 /ssl ntfs binary 0 0' >> /etc/fstab"
bash -lc "echo 'C:/vagrant /vagrant ntfs binary 0 0' >> /etc/fstab" bash -lc "echo 'C:/vagrant /vagrant ntfs binary 0 0' >> /etc/fstab"
bash -lc "exec 0</dev/null; exec 2>&1; cd /vagrant; bash -x ./autogen.sh && ./configure LDFLAGS='-L/ssl -L/ssl/lib -L/ssl/lib/MinGW' CFLAGS=-I/ssl/include && make -j4 verify" bash -lc "exec 0</dev/null; exec 2>&1; cd /vagrant; bash -x ./autogen.sh && ./configure LDFLAGS='-L/ssl -L/ssl/lib -L/ssl/lib/MinGW' CFLAGS=-I/ssl/include && make -j20 verify"
SHELL SHELL
end end
end end

View File

@ -49,11 +49,12 @@ build_script:
bash -lc "echo 'C:\MinGW /mingw' > /etc/fstab" bash -lc "echo 'C:\MinGW /mingw' > /etc/fstab"
bash -lc "echo 'C:\OpenSSL-Win32 /ssl' >> /etc/fstab" bash -lc "echo 'C:\OpenSSL-Win32 /ssl' >> /etc/fstab"
$env:APPVEYOR_BUILD_FOLDER = $env:APPVEYOR_BUILD_FOLDER -replace "\\", "/" $env:APPVEYOR_BUILD_FOLDER = $env:APPVEYOR_BUILD_FOLDER -replace "\\", "/"
bash -lc "exec 0</dev/null; exec 2>&1; cd $env:APPVEYOR_BUILD_FOLDER; bash -x ./autogen.sh && ./configure LDFLAGS='-L/ssl -L/ssl/lib -L/ssl/lib/MinGW' CFLAGS=-I/ssl/include $env:EVENT_CONFIGURE_OPTIONS && make && make verify" bash -lc "exec 0</dev/null; exec 2>&1; cd $env:APPVEYOR_BUILD_FOLDER; bash -x ./autogen.sh && ./configure LDFLAGS='-L/ssl -L/ssl/lib -L/ssl/lib/MinGW' CFLAGS=-I/ssl/include $env:EVENT_CONFIGURE_OPTIONS && make && make verify -j20"
} else { } else {
md build md build
cd build cd build
cmake .. $env:EVENT_CMAKE_OPTIONS cmake .. $env:EVENT_CMAKE_OPTIONS
cmake --build . cmake --build .
$env:CTEST_PARALLEL_LEVEL="20"
ctest --output-on-failure ctest --output-on-failure
} }