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 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 86