• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 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
6language: cpp
7
8# Define the matrix explicitly, manually expanding the combinations of (os, compiler, env).
9# It is more tedious, but grants us far more flexibility.
10matrix:
11  include:
12    - os: linux
13      before_install: chmod -R +x ./ci/*platformio.sh
14      install: ./ci/install-platformio.sh
15      script: ./ci/build-platformio.sh
16    - os: linux
17      dist: xenial
18      compiler: gcc
19      install: ./ci/install-linux.sh && ./ci/log-config.sh
20      script: ./ci/build-linux-bazel.sh
21    - os: linux
22      dist: xenial
23      compiler: clang
24      install: ./ci/install-linux.sh && ./ci/log-config.sh
25      script: ./ci/build-linux-bazel.sh
26    - os: linux
27      compiler: gcc
28      env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
29    - os: linux
30      compiler: clang
31      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 -Wgnu-zero-variadic-macro-arguments
32    - os: linux
33      compiler: clang
34      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
35    - os: osx
36      compiler: gcc
37      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
38    - os: osx
39      compiler: clang
40      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
41
42# These are the install and build (script) phases for the most common entries in the matrix.  They could be included
43# in each entry in the matrix, but that is just repetitive.
44install:
45  - ./ci/install-${TRAVIS_OS_NAME}.sh
46  - . ./ci/env-${TRAVIS_OS_NAME}.sh
47  - ./ci/log-config.sh
48
49script: ./ci/travis.sh
50
51# This section installs the necessary dependencies.
52addons:
53  apt:
54    # List of whitelisted in travis packages for ubuntu-precise can be found here:
55    #   https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
56    # List of whitelisted in travis apt-sources:
57    #   https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
58    sources:
59    - ubuntu-toolchain-r-test
60    - llvm-toolchain-precise-3.9
61    packages:
62    - g++-4.9
63    - clang-3.9
64    update: true
65  homebrew:
66    packages:
67    - ccache
68    - gcc@4.9
69    - llvm@4
70    update: true
71
72notifications:
73  email: false
74