# vim ft=yaml # travis-ci.org definition dist: xenial git: depth: 2 language: cpp cache: timeout: 500 apt: true ccache: true directories: - /usr/local/Cellar # Fails do to permission error: https://github.com/travis-ci/travis-ci/issues/8092 addons: apt: # NOTE: Travis-CI Ubuntu Xenial builders have GCC 5 and Clang 7 available by default # NOTE: Travis-CI Ubuntu Ubuntu builders have GCC 7 and Clang 7 available by default sources: &add-sources - ubuntu-toolchain-r-test # Includes e.g. gcc4-9 for xenial, gcc9 for bionic # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages?field.name_filter=&field.status_filter=published&field.series_filter=xenial - llvm-toolchain-xenial-6.0 - llvm-toolchain-xenial-7 # NOTE: This repo has no clang-7 for s390x - sourceline: 'ppa:maria-captains/travis-ci-helper-repo' # https://launchpad.net/~maria-captains/+archive/ubuntu/travis-ci-helper-repo/+packages packages: &common-packages # make sure these include all compilers and all build dependencies (see list above) - bison - chrpath - clang-6.0 # xenial, bionic - clang-7 # bionic-updates, llvm-toolchain-xenial-6.0 (amd64 only, not s390x) - clang-8 # xenial, bionic - cmake - cracklib-runtime - galera-4 - g++-5 # xenial, bionic, ubuntu-toolchain-r/test (xenial) - g++-6 # bionic, ubuntu-toolchain-r/test (xenial) - g++-7 # bionic, ubuntu-toolchain-r/test (xenial) - g++-8 # bionic, ubuntu-toolchain-r/test (xenial) - g++-9 # ubuntu-toolchain-r/test (xenial and bionic) - gdb - libaio-dev - libboost-dev - libcrack2-dev - libcurl3-dev - libdbd-mysql - libjemalloc-dev - libjudy-dev - liblzma-dev - libncurses5-dev - libnuma-dev - libpam0g-dev - libpcre2-dev - libreadline-gplv2-dev - libsnappy-dev - libssl-dev - libstemmer-dev - libxml2-dev - lsb-release - perl - psmisc - uuid-dev - zlib1g-dev # libsystemd-daemon-dev # https://github.com/travis-ci/apt-package-whitelist/issues/3882 homebrew: # Temporary workaround, remove when this is solved: # https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296/20 update: true # OSX builds are not properly maintained on Travis-CI nor buildbot and # thus this list of dependencies is likely to be inaccurate. packages: - bison - boost - ccache - cmake - cracklib - curl - gnutls - groonga - jemalloc - libxml2 - lz4 - lzo - ncurses - openssl@1.1 - ossp-uuid - pcre2 - perl - pkg-config - readline - snappy - xz - zlib - zstd ## Build jobs matrix # The jobs matrix consists of all the combinations of 'arch', 'os', 'compiler' # and 'env'. Ensure there is a good variation of architectures and at least the # main suite is run on all architectures, as the main test suite needs to pass # on all architectures (amd64, arm64, ppc64le, s390x) before a release is made. # All test suites should also run on the clang build at least on one # arch/platform. In gcc and clang versions prefer 7, which is very widely used, # and after that prioritize newer versions (8, 9 etc) above older versions (5, 6). arch: amd64 os: linux compiler: - gcc - clang env: - CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts - CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl - CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption - CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rocksdb,versioning - CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles - CC_VERSION=8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main jobs: # Define extra jobs that are run in addition to the main jobs matrix include: - os: linux compiler: gcc env: DebPackages=xenial addons: &deb-addons apt: sources: *add-sources # make sure these match debian/control contents packages: - *common-packages - debhelper - devscripts - dh-apparmor - dh-exec - dh-systemd - fakeroot - libdistro-info-perl - libsystemd-dev - libzstd-dev - po-debconf - unixodbc-dev script: &deb-script - ${CC} --version ; ${CXX} --version - env DEB_BUILD_OPTIONS="parallel=4" debian/autobake-deb.sh; - os: linux arch: s390x dist: bionic compiler: gcc env: DebPackages=bionic addons: *deb-addons script: *deb-script # Just one OS X build is enough - os: osx osx_image: xcode10.1 compiler: clang env: CC_VERSION=8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main # Some chosen ones with s390x and gcc - os: linux arch: s390x dist: bionic compiler: gcc env: CC_VERSION=8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main - os: linux arch: s390x dist: bionic compiler: gcc env: CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=binlog,binlog_encryption,encryption - os: linux arch: s390x dist: bionic compiler: gcc env: CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rocksdb,versioning # Some chosen ones with s390x and clang - os: linux arch: s390x dist: bionic compiler: clang env: CC_VERSION=6 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=archive,optimizer_unfixed_bugs,parts,sys_vars,unit,vcol,innodb,innodb_gis,innodb_zip,innodb_fts - os: linux arch: s390x dist: bionic compiler: clang env: CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=rpl - os: linux arch: s390x dist: bionic compiler: clang env: CC_VERSION=8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=csv,federated,funcs_1,funcs_2,gcol,handler,heap,json,maria,perfschema,plugins,multi_source,roles # Extra tests to ensure builds on IBM Power and ARM 64 work - os: linux dist: bionic arch: ppc64le compiler: gcc env: CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main - os: linux dist: bionic arch: arm64 compiler: gcc env: CC_VERSION=7 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main allow_failures: # Permanently fails on main.thread_pool_info test - os: linux arch: amd64 compiler: clang env: CC_VERSION=8 TYPE=RelWithDebInfo MYSQL_TEST_SUITES=main # Until OSX becomes a bit more stable - os: osx before_install: - if [[ "${TRAVIS_OS_NAME}" == 'osx' ]]; then brew update; brew install gnutls lz4 lzo xz snappy ccache jemalloc curl ossp-uuid pcre zstd; brew link ccache; export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi before_script: - df -h - ccache --version - ccache --show-stats - ccache --max-size=5G script: # 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 - make -j 4 - cd mysql-test - travis_wait 30 ./mtr --force --max-test-fail=20 --parallel=4 --testcase-timeout=${TEST_CASE_TIMEOUT} --suite=${MYSQL_TEST_SUITES} --skip-test-list=unstable-tests --skip-test=binlog.binlog_unsafe after_script: - ccache --show-stats - df -h notifications: irc: channels: - "chat.freenode.net#maria" on_success: never # [always|never|change] on_failure: never template: - "%{repository}/%{branch} (%{commit} - %{author}): %{build_url}: %{message}"