blob: 4e7413a4f9a3c3fc01beee7d45fd4240b8e0aa18 [file] [log] [blame]
Austin Schuh0cbef622015-09-06 17:34:52 -07001# Build matrix / environment variable are explained on:
Austin Schuh889ac432018-10-29 22:57:02 -07002# https://docs.travis-ci.com/user/customizing-the-build/
Austin Schuh0cbef622015-09-06 17:34:52 -07003# This file can be validated on:
4# http://lint.travis-ci.org/
Austin Schuh0cbef622015-09-06 17:34:52 -07005
Austin Schuh889ac432018-10-29 22:57:02 -07006sudo: 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 install: ./ci/install-linux.sh && ./ci/log-config.sh
17 script: ./ci/build-linux-bazel.sh
18 - os: linux
19 compiler: clang
20 sudo : true
21 install: ./ci/install-linux.sh && ./ci/log-config.sh
22 script: ./ci/build-linux-bazel.sh
23 - os: linux
24 group: deprecated-2017Q4
25 compiler: gcc
26 install: ./ci/install-linux.sh && ./ci/log-config.sh
27 script: ./ci/build-linux-autotools.sh
28 - os: linux
29 group: deprecated-2017Q4
30 compiler: gcc
31 env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
32 - os: linux
33 group: deprecated-2017Q4
34 compiler: clang
35 env: BUILD_TYPE=Debug VERBOSE=1
36 - os: linux
37 group: deprecated-2017Q4
38 compiler: clang
39 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
40 - os: linux
41 compiler: clang
42 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
43 - os: osx
44 compiler: gcc
45 env: BUILD_TYPE=Debug VERBOSE=1
46 - os: osx
47 compiler: gcc
48 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
49 - os: osx
50 compiler: clang
51 env: BUILD_TYPE=Debug VERBOSE=1
52 if: type != pull_request
53 - os: osx
54 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
55 if: type != pull_request
56
57# These are the install and build (script) phases for the most common entries in the matrix. They could be included
58# in each entry in the matrix, but that is just repetitive.
Austin Schuh0cbef622015-09-06 17:34:52 -070059install:
Austin Schuh889ac432018-10-29 22:57:02 -070060 - ./ci/install-${TRAVIS_OS_NAME}.sh
61 - . ./ci/env-${TRAVIS_OS_NAME}.sh
62 - ./ci/log-config.sh
63
64script: ./ci/travis.sh
65
66# For sudo=false builds this section installs the necessary dependencies.
Austin Schuh0cbef622015-09-06 17:34:52 -070067addons:
68 apt:
Austin Schuh889ac432018-10-29 22:57:02 -070069 # List of whitelisted in travis packages for ubuntu-precise can be found here:
70 # https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
71 # List of whitelisted in travis apt-sources:
72 # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
Austin Schuh0cbef622015-09-06 17:34:52 -070073 sources:
74 - ubuntu-toolchain-r-test
Austin Schuh889ac432018-10-29 22:57:02 -070075 - llvm-toolchain-precise-3.9
Austin Schuh0cbef622015-09-06 17:34:52 -070076 packages:
Austin Schuh0cbef622015-09-06 17:34:52 -070077 - g++-4.9
Austin Schuh889ac432018-10-29 22:57:02 -070078 - clang-3.9
79
Austin Schuh0cbef622015-09-06 17:34:52 -070080notifications:
81 email: false