blob: 04b51ddec9185508843d3530d6ae585cfa7c44b7 [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
mistergc4ccab32019-02-12 11:48:51 -05006language: 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
Krystian Kuzniarek28e1dde2019-07-25 09:46:15 +020013 before_install: chmod -R +x ./ci/*platformio.sh
mistergc4ccab32019-02-12 11:48:51 -050014 install: ./ci/install-platformio.sh
Krystian Kuzniarek28e1dde2019-07-25 09:46:15 +020015 script: ./ci/build-platformio.sh
mistergc4ccab32019-02-12 11:48:51 -050016 - os: linux
misterg1d721a72019-06-18 14:21:57 -040017 dist: xenial
mistergc4ccab32019-02-12 11:48:51 -050018 compiler: gcc
mistergc4ccab32019-02-12 11:48:51 -050019 install: ./ci/install-linux.sh && ./ci/log-config.sh
20 script: ./ci/build-linux-bazel.sh
21 - os: linux
misterg1d721a72019-06-18 14:21:57 -040022 dist: xenial
mistergc4ccab32019-02-12 11:48:51 -050023 compiler: clang
mistergc4ccab32019-02-12 11:48:51 -050024 install: ./ci/install-linux.sh && ./ci/log-config.sh
25 script: ./ci/build-linux-bazel.sh
26 - os: linux
mistergc4ccab32019-02-12 11:48:51 -050027 compiler: gcc
Krystian Kuzniarek28e1dde2019-07-25 09:46:15 +020028 env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
mistergc4ccab32019-02-12 11:48:51 -050029 - os: linux
mistergc4ccab32019-02-12 11:48:51 -050030 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
misterg9f8c3932019-08-05 16:42:55 -040051# This section installs the necessary dependencies.
mistergc4ccab32019-02-12 11:48:51 -050052addons:
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
misterg72adf7a2019-09-27 16:23:47 -040069 - llvm@4
mistergc4ccab32019-02-12 11:48:51 -050070 update: true
71
72notifications:
73 email: false