blob: 4b90bd06c838256c6cb4abd485f55ed7344662cd [file] [log] [blame]
mistergc4ccab32019-02-12 11:48:51 -05001# Build matrix / environment variable are explained on:
2# https://docs.travis-ci.com/user/customizing-the-build/
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 dist: trusty
15 sudo: required
16 group: deprecated-2017Q3
17 before_install: chmod -R +x ./ci/*platformio.sh
18 install: ./ci/install-platformio.sh
19 script: ./ci/build-platformio.sh
20 - os: linux
21 compiler: gcc
22 sudo : true
23 install: ./ci/install-linux.sh && ./ci/log-config.sh
24 script: ./ci/build-linux-bazel.sh
25 - os: linux
26 compiler: clang
27 sudo : true
28 install: ./ci/install-linux.sh && ./ci/log-config.sh
29 script: ./ci/build-linux-bazel.sh
30 - os: linux
31 group: deprecated-2017Q4
32 compiler: gcc
33 install: ./ci/install-linux.sh && ./ci/log-config.sh
34 script: ./ci/build-linux-autotools.sh
35 env: VERBOSE=1 CXXFLAGS=-std=c++11
36 - os: linux
37 group: deprecated-2017Q4
38 compiler: gcc
39 env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
40 - os: linux
41 group: deprecated-2017Q4
42 compiler: clang
43 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 -Wgnu-zero-variadic-macro-arguments
44 - os: linux
45 compiler: clang
46 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
47 - os: osx
48 compiler: gcc
49 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
50 - os: osx
51 compiler: clang
52 env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
53
54# These are the install and build (script) phases for the most common entries in the matrix. They could be included
55# in each entry in the matrix, but that is just repetitive.
56install:
57 - ./ci/install-${TRAVIS_OS_NAME}.sh
58 - . ./ci/env-${TRAVIS_OS_NAME}.sh
59 - ./ci/log-config.sh
60
61script: ./ci/travis.sh
62
63# For sudo=false builds this section installs the necessary dependencies.
64addons:
65 apt:
66 # List of whitelisted in travis packages for ubuntu-precise can be found here:
67 # https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
68 # List of whitelisted in travis apt-sources:
69 # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
70 sources:
71 - ubuntu-toolchain-r-test
72 - llvm-toolchain-precise-3.9
73 packages:
74 - g++-4.9
75 - clang-3.9
76 update: true
77 homebrew:
78 packages:
79 - ccache
80 - gcc@4.9
81 - llvm@3.9
82 update: true
83
84notifications:
85 email: false