.travis.yml 2.38 KB
Newer Older
misterg's avatar
misterg committed
1
2
3
4
5
6
7
8
9
10
11
12
# Build matrix / environment variable are explained on:
# https://docs.travis-ci.com/user/customizing-the-build/
# This file can be validated on:
# http://lint.travis-ci.org/

language: cpp

# Define the matrix explicitly, manually expanding the combinations of (os, compiler, env).
# It is more tedious, but grants us far more flexibility.
matrix:
  include:
    - os: linux
13
      before_install: chmod -R +x ./ci/*platformio.sh
misterg's avatar
misterg committed
14
      install: ./ci/install-platformio.sh
15
      script: ./ci/build-platformio.sh
misterg's avatar
misterg committed
16
    - os: linux
misterg's avatar
misterg committed
17
      dist: xenial
misterg's avatar
misterg committed
18
19
20
21
      compiler: gcc
      install: ./ci/install-linux.sh && ./ci/log-config.sh
      script: ./ci/build-linux-bazel.sh
    - os: linux
misterg's avatar
misterg committed
22
      dist: xenial
misterg's avatar
misterg committed
23
24
25
26
27
      compiler: clang
      install: ./ci/install-linux.sh && ./ci/log-config.sh
      script: ./ci/build-linux-bazel.sh
    - os: linux
      compiler: gcc
28
      env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
misterg's avatar
misterg committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    - os: linux
      compiler: clang
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 -Wgnu-zero-variadic-macro-arguments
    - os: linux
      compiler: clang
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
    - os: osx
      compiler: gcc
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
    - os: osx
      compiler: clang
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp

# These are the install and build (script) phases for the most common entries in the matrix.  They could be included
# in each entry in the matrix, but that is just repetitive.
install:
  - ./ci/install-${TRAVIS_OS_NAME}.sh
  - . ./ci/env-${TRAVIS_OS_NAME}.sh
  - ./ci/log-config.sh

script: ./ci/travis.sh

misterg's avatar
misterg committed
51
# This section installs the necessary dependencies.
misterg's avatar
misterg committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
addons:
  apt:
    # List of whitelisted in travis packages for ubuntu-precise can be found here:
    #   https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
    # List of whitelisted in travis apt-sources:
    #   https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
    sources:
    - ubuntu-toolchain-r-test
    - llvm-toolchain-precise-3.9
    packages:
    - g++-4.9
    - clang-3.9
    update: true
  homebrew:
    packages:
    - ccache
    - gcc@4.9
    - llvm@3.9
    update: true

notifications:
  email: false