summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorTeodor Mircea Ionita <teodor@mariadb.org>2018-05-29 10:26:01 +0300
committerVicențiu-Marian Ciorbaru <cvicentiu@gmail.com>2018-06-29 13:57:36 +0300
commit5cdc70b8a1726811f7567b8a93ce9178184c29dd (patch)
treef6e9734afd8154d76196267dde2960b3df1ed9f1 /.travis.yml
parent724a5105cba31fe48bd0a2754d074d8942b21153 (diff)
downloadmariadb-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.yml51
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