diff options
author | Teodor Mircea Ionita <teodor@mariadb.org> | 2018-05-29 10:26:01 +0300 |
---|---|---|
committer | Vicențiu-Marian Ciorbaru <cvicentiu@gmail.com> | 2018-06-29 13:57:36 +0300 |
commit | 5cdc70b8a1726811f7567b8a93ce9178184c29dd (patch) | |
tree | f6e9734afd8154d76196267dde2960b3df1ed9f1 /.travis.yml | |
parent | 724a5105cba31fe48bd0a2754d074d8942b21153 (diff) | |
download | mariadb-git-5cdc70b8a1726811f7567b8a93ce9178184c29dd.tar.gz |
MDEV-16213: Improvements and adjustments to Travis config
Several improvements have been made so that builds run
faster and with fewer canceled jobs:
* Set ccache max size to 1GB. Was 512MB for Linux
(too low for MariaDB) and 5GB on macOS with defaults;
* Don't install libasan in Travis if not necessary.
Sicne ASAN is disabled for the time being, save
time/resources for other steps;
* Decrease number of parallel processes. To prevent
resource exhaustion leading to poor performance. According
to Travis docs, a max of 4 concurrent processses should be
run per job:
https://docs.travis-ci.com/user/common-build-problems/#My-build-script-is-killed-without-any-error
* Reconsider tests exec order and split huge main and rocksdb
test suites into their own job, decreasing the chance of going
over the Travis job execution limit and getting killed;
* Increase Travis testcase-timeout to 4 minutes. Occasionally
on Ubuntu target and frequently on macOS, many tests in main,
rpl, binlog suites take longer than 2 minutes, resulting in
many jobs failing, when in reality the failing tests didn't
get a chance to complete. From my testing, along with the other
speedups, i.e. increasing ccache size, a timeout of 4 minutes
should be Ok. Revert to 3 minutes of necessary.
* Build with GCC and Clang version 5,6 only.
* Rename GCC_VERSION to CC_VERSION for clarity. We are using
two compilers after all, GCC and Clang.
* Stop using somewhat obsolete Clang4 in Travis. Also, was the
reason for the failing test suites in MDEV-15430.
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/.travis.yml b/.travis.yml index 444c1c0d790..f3b2e2a4eac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,16 +18,18 @@ compiler: cache: apt: true - ccache: true # Does not currently work for clang builds: https://github.com/travis-ci/travis-ci/issues/6201 + ccache: true directories: - /usr/local/Cellar # Fails do to permission error: https://github.com/travis-ci/travis-ci/issues/8092 env: matrix: - - GCC_VERSION=4.8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl - - GCC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main,archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts - - GCC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption,rocksdb - - GCC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles + - CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main + - CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts + - CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl + - CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption + - CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rocksdb + - CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles matrix: exclude: @@ -81,39 +83,45 @@ matrix: # https://github.com/travis-ci/travis-ci/issues/7062 - /run/shm isn't writable or executable # in trusty containers - export MTR_MEM=/tmp - - env DEB_BUILD_OPTIONS="parallel=6" debian/autobake-deb.sh; + - env DEB_BUILD_OPTIONS="parallel=4" debian/autobake-deb.sh; - ccache --show-stats # Until OSX becomes a bit more stable: MDEV-12435 allow_failures: - os: osx compiler: clang - env: GCC_VERSION=4.8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl + env: CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl - os: osx compiler: clang - env: GCC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main,archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts + env: CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main - os: osx compiler: clang - env: GCC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption,rocksdb + env: CC_VERSION=5 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts - os: osx compiler: clang - env: GCC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles + env: CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption + - os: osx + compiler: clang + env: CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rocksdb + - os: osx + compiler: clang + env: CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles addons: apt: sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-4.0 - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-5.0 main' + - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main' packages: # make sure these include all compilers and all build dependencies (see list above) - gcc-5 - g++-5 - gcc-6 - g++-6 - - clang-4.0 - - llvm-4.0-dev - clang-5.0 - llvm-5.0-dev - - libasan0 + - clang-6.0 + - llvm-6.0-dev +# - libasan0 - bison - chrpath - cmake @@ -154,19 +162,22 @@ before_install: script: - ccache --version -# Clang: -# mroonga just generates too many warnings with clang and travis stops the job -# tokudb has fatal warnings + - ccache --show-stats + - ccache --max-size=1000M +# following modules are disabled after sourcing .travis.compiler.sh: +# clang disabled: mroonga just generates too many warnings with clang and travis stops the job +# cland disabled: tokudb has fatal warnings +# gcc/rpl: tokudb and mroonga - source .travis.compiler.sh - cmake . -DCMAKE_BUILD_TYPE=${TYPE} ${CMAKE_OPT} -DWITH_SSL=system -DWITH_ZLIB=system -DPLUGIN_AWS_KEY_MANAGEMENT=DYNAMIC -DAWS_SDK_EXTERNAL_PROJECT=ON - - make -j 6 + - make -j 4 - cd mysql-test # With ASAN --thread-stack=400K to account for overhead -# Test timeout needs to be 10(minutes) or less due to travis out timeout - - ./mtr --force --max-test-fail=20 --parallel=6 --testcase-timeout=2 +# Test timeout needs to be 10 (minutes) or less due to travis job timeout + - ./mtr --force --max-test-fail=20 --parallel=4 --testcase-timeout=4 --suite=${MYSQL_TEST_SUITES} --skip-test-list=unstable-tests --skip-test=binlog.binlog_unsafe |