mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
eecce3d7c8
Remove clang-3.8 which doesn't have a repository on apt.llvm.org any more. For OSX, xcode8.3 is explicitly specified. /usr/local/Cellar is used as a cache repository to save brew install time on OSX (and /usr/local was too big). Debian autobake.sh is moved to a matrix include. Other branches of the matrix build test other test suites. An Ubuntu galera is downloaded and used in the test suite. TYPE=RelWithDebInfo used with the test to provide backtraces with line numbers when crashes occur. Build of PLUGIN_AWS_KEY_MANAGEMENT enabled in build. Code supporting TYPE=Debug and -DWITH_ASAN=ON included by not enabled due to large numbers of errors. Running more tests in parallel (6) as container based builds seem to support them. The test case timeout has been set to 2 minutes as large stalls will put test cases over 50 minute interval. ccache enabled where possible. Linux clang builds don't use them as the minimum CMake version isn't there.
169 lines
5.2 KiB
YAML
169 lines
5.2 KiB
YAML
# vim ft=yaml
|
|
# travis-ci.org definition
|
|
|
|
sudo: false
|
|
dist: trusty
|
|
|
|
git:
|
|
depth: 2
|
|
|
|
language: cpp
|
|
os:
|
|
- linux
|
|
- osx
|
|
osx_image: xcode8.3
|
|
compiler:
|
|
- gcc
|
|
- clang
|
|
|
|
cache:
|
|
apt: true
|
|
ccache: true
|
|
directories:
|
|
- /usr/local/Cellar
|
|
|
|
env:
|
|
matrix:
|
|
# - GCC_VERSION=4.8 TYPE=Debug MYSQL_TEST_SUITES=rpl
|
|
# - GCC_VERSION=5 TYPE=Debug MYSQL_TEST_SUITES=main,archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts
|
|
# - GCC_VERSION=6 TYPE=Debug MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption,rocksdb
|
|
# - GCC_VERSION=6 TYPE=Debug MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,percona,perfschema,plugins,multi_source,roles
|
|
- 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,percona,perfschema,plugins,multi_source,roles
|
|
|
|
matrix:
|
|
exclude:
|
|
- os: osx
|
|
compiler: gcc
|
|
include:
|
|
- os: linux
|
|
compiler: gcc
|
|
script:
|
|
- ${CC} --version ; ${CXX} --version
|
|
# Just for disabling hotcopy tests for now
|
|
- source .travis.compiler.sh
|
|
# 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;
|
|
- ccache --show-stats
|
|
|
|
# Matrix include for coverity
|
|
# - env:
|
|
# - GCC_VERSION=6
|
|
# addon:
|
|
# coverity_scan:
|
|
# # ref: https://scan.coverity.com/travis_ci
|
|
# # GitHub project metadata
|
|
# project:
|
|
# - name: MariaDB/server
|
|
# - description: MariaDB Server
|
|
#
|
|
# # Where email notification of build analysis results will be sent
|
|
# notification_email: security@mariadb.org
|
|
#
|
|
# # Commands to prepare for build_command
|
|
# build_command_prepend:
|
|
# - source .travis.compiler.sh
|
|
# - ${MYSQL_BUILD_CC} --version ; ${MYSQL_BUILD_CXX} --version
|
|
# - cmake .
|
|
# -DCMAKE_BUILD_TYPE=Debug
|
|
# -DWITH_SSL=system -DWITH_ZLIB=system
|
|
# -DWITHOUT_TOKUDB_STORAGE_ENGINE=ON -DWITHOUT_MROONGA_STORAGE_ENGINE=ON
|
|
#
|
|
# # The command that will be added as an argument to "cov-build" to compile your project for analysis,
|
|
# build_command: make -j 4
|
|
#
|
|
# # Pattern to match selecting branches that will run analysis.
|
|
# # Take care in resource usage, and consider the build frequency allowances per
|
|
# # https://scan.coverity.com/faq#frequency - 7 per week is the current limit.
|
|
# branch_pattern: .*coverity.*
|
|
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-trusty
|
|
- llvm-toolchain-trusty-3.9
|
|
- llvm-toolchain-trusty-4.0
|
|
packages: # make sure these match debian/control contents
|
|
- gcc-5
|
|
- g++-5
|
|
- gcc-6
|
|
- g++-6
|
|
- clang-3.9
|
|
- llvm-3.9-dev
|
|
- clang-4.0
|
|
- llvm-4.0-dev
|
|
- libasan0
|
|
- bison
|
|
- chrpath
|
|
- cmake
|
|
- debhelper
|
|
- dh-apparmor
|
|
- dpatch
|
|
- gdb
|
|
- libaio-dev
|
|
- libboost-dev
|
|
- libcurl3-dev
|
|
- libjudy-dev
|
|
- libncurses5-dev
|
|
- libpam0g-dev
|
|
- libpcre3-dev
|
|
- libreadline-gplv2-dev
|
|
- libstemmer-dev
|
|
- libssl-dev
|
|
- libnuma-dev
|
|
- libxml2-dev
|
|
- lsb-release
|
|
- perl
|
|
- po-debconf
|
|
- psmisc
|
|
- zlib1g-dev
|
|
- libcrack2-dev
|
|
- libjemalloc-dev
|
|
- libsnappy-dev
|
|
- liblzma-dev
|
|
- libzmq-dev
|
|
- libdistro-info-perl
|
|
- devscripts # implicit for any build on Ubuntu
|
|
|
|
# libsystemd-daemon-dev # https://github.com/travis-ci/apt-package-whitelist/issues/3882
|
|
|
|
before_install:
|
|
- if [[ "${TRAVIS_OS_NAME}" == 'osx' ]]; then
|
|
brew update;
|
|
brew install gnutls lz4 lzo xz snappy ccache jemalloc curl ossp-uuid pcre;
|
|
brew link ccache;
|
|
fi
|
|
|
|
script:
|
|
- ccache --version
|
|
# Clang:
|
|
# mroonga just generates too many warnings with clang and travis stops the job
|
|
# tokudb has fatal warnings
|
|
- 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
|
|
- 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
|
|
--suite=${MYSQL_TEST_SUITES}
|
|
--skip-test-list=unstable-tests
|
|
--skip-test=binlog.binlog_unsafe
|
|
- ccache --show-stats
|
|
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- "chat.freenode.net#maria"
|
|
on_success: never # [always|never|change]
|
|
on_failure: never
|
|
template:
|
|
- "%{repository}/%{branch} (%{commit} - %{author}): %{build_url}: %{message}"
|