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