misterg | c4ccab3 | 2019-02-12 11:48:51 -0500 | [diff] [blame] | 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 | |
| 6 | sudo: false |
| 7 | language: 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. |
| 11 | matrix: |
| 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. |
| 56 | install: |
| 57 | - ./ci/install-${TRAVIS_OS_NAME}.sh |
| 58 | - . ./ci/env-${TRAVIS_OS_NAME}.sh |
| 59 | - ./ci/log-config.sh |
| 60 | |
| 61 | script: ./ci/travis.sh |
| 62 | |
| 63 | # For sudo=false builds this section installs the necessary dependencies. |
| 64 | addons: |
| 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 | |
| 84 | notifications: |
| 85 | email: false |