1*b89a7cc2SEnji Cooper# Build matrix / environment variable are explained on: 2*b89a7cc2SEnji Cooper# https://docs.travis-ci.com/user/customizing-the-build/ 3*b89a7cc2SEnji Cooper# This file can be validated on: 4*b89a7cc2SEnji Cooper# http://lint.travis-ci.org/ 5*b89a7cc2SEnji Cooper 6*b89a7cc2SEnji Coopersudo: false 7*b89a7cc2SEnji Cooperlanguage: cpp 8*b89a7cc2SEnji Cooper 9*b89a7cc2SEnji Cooper# Define the matrix explicitly, manually expanding the combinations of (os, compiler, env). 10*b89a7cc2SEnji Cooper# It is more tedious, but grants us far more flexibility. 11*b89a7cc2SEnji Coopermatrix: 12*b89a7cc2SEnji Cooper include: 13*b89a7cc2SEnji Cooper - os: linux 14*b89a7cc2SEnji Cooper compiler: gcc 15*b89a7cc2SEnji Cooper sudo : true 16*b89a7cc2SEnji Cooper install: ./ci/install-linux.sh && ./ci/log-config.sh 17*b89a7cc2SEnji Cooper script: ./ci/build-linux-bazel.sh 18*b89a7cc2SEnji Cooper - os: linux 19*b89a7cc2SEnji Cooper compiler: clang 20*b89a7cc2SEnji Cooper sudo : true 21*b89a7cc2SEnji Cooper install: ./ci/install-linux.sh && ./ci/log-config.sh 22*b89a7cc2SEnji Cooper script: ./ci/build-linux-bazel.sh 23*b89a7cc2SEnji Cooper - os: linux 24*b89a7cc2SEnji Cooper group: deprecated-2017Q4 25*b89a7cc2SEnji Cooper compiler: gcc 26*b89a7cc2SEnji Cooper install: ./ci/install-linux.sh && ./ci/log-config.sh 27*b89a7cc2SEnji Cooper script: ./ci/build-linux-autotools.sh 28*b89a7cc2SEnji Cooper - os: linux 29*b89a7cc2SEnji Cooper group: deprecated-2017Q4 30*b89a7cc2SEnji Cooper compiler: gcc 31*b89a7cc2SEnji Cooper env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11 32*b89a7cc2SEnji Cooper - os: linux 33*b89a7cc2SEnji Cooper group: deprecated-2017Q4 34*b89a7cc2SEnji Cooper compiler: clang 35*b89a7cc2SEnji Cooper env: BUILD_TYPE=Debug VERBOSE=1 36*b89a7cc2SEnji Cooper - os: linux 37*b89a7cc2SEnji Cooper group: deprecated-2017Q4 38*b89a7cc2SEnji Cooper compiler: clang 39*b89a7cc2SEnji Cooper env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 40*b89a7cc2SEnji Cooper - os: linux 41*b89a7cc2SEnji Cooper compiler: clang 42*b89a7cc2SEnji Cooper env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON 43*b89a7cc2SEnji Cooper - os: osx 44*b89a7cc2SEnji Cooper compiler: gcc 45*b89a7cc2SEnji Cooper env: BUILD_TYPE=Debug VERBOSE=1 46*b89a7cc2SEnji Cooper - os: osx 47*b89a7cc2SEnji Cooper compiler: gcc 48*b89a7cc2SEnji Cooper env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 49*b89a7cc2SEnji Cooper - os: osx 50*b89a7cc2SEnji Cooper compiler: clang 51*b89a7cc2SEnji Cooper env: BUILD_TYPE=Debug VERBOSE=1 52*b89a7cc2SEnji Cooper if: type != pull_request 53*b89a7cc2SEnji Cooper - os: osx 54*b89a7cc2SEnji Cooper env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 55*b89a7cc2SEnji Cooper if: type != pull_request 56*b89a7cc2SEnji Cooper 57*b89a7cc2SEnji Cooper# These are the install and build (script) phases for the most common entries in the matrix. They could be included 58*b89a7cc2SEnji Cooper# in each entry in the matrix, but that is just repetitive. 59*b89a7cc2SEnji Cooperinstall: 60*b89a7cc2SEnji Cooper - ./ci/install-${TRAVIS_OS_NAME}.sh 61*b89a7cc2SEnji Cooper - . ./ci/env-${TRAVIS_OS_NAME}.sh 62*b89a7cc2SEnji Cooper - ./ci/log-config.sh 63*b89a7cc2SEnji Cooper 64*b89a7cc2SEnji Cooperscript: ./ci/travis.sh 65*b89a7cc2SEnji Cooper 66*b89a7cc2SEnji Cooper# For sudo=false builds this section installs the necessary dependencies. 67*b89a7cc2SEnji Cooperaddons: 68*b89a7cc2SEnji Cooper apt: 69*b89a7cc2SEnji Cooper # List of whitelisted in travis packages for ubuntu-precise can be found here: 70*b89a7cc2SEnji Cooper # https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise 71*b89a7cc2SEnji Cooper # List of whitelisted in travis apt-sources: 72*b89a7cc2SEnji Cooper # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json 73*b89a7cc2SEnji Cooper sources: 74*b89a7cc2SEnji Cooper - ubuntu-toolchain-r-test 75*b89a7cc2SEnji Cooper - llvm-toolchain-precise-3.9 76*b89a7cc2SEnji Cooper packages: 77*b89a7cc2SEnji Cooper - g++-4.9 78*b89a7cc2SEnji Cooper - clang-3.9 79*b89a7cc2SEnji Cooper 80*b89a7cc2SEnji Coopernotifications: 81*b89a7cc2SEnji Cooper email: false 82