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