Skip to content
Snippets Groups Projects
.travis.yml 3.16 KiB
Newer Older
Billy Donahue's avatar
Billy Donahue committed
# Build matrix / environment variable are explained on:
# https://docs.travis-ci.com/user/customizing-the-build/
Billy Donahue's avatar
Billy Donahue committed
# This file can be validated on:
# http://lint.travis-ci.org/

sudo: false
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
      compiler: gcc
Gennadiy Civil's avatar
Gennadiy Civil committed
      sudo : true
      install: ./ci/install-linux.sh && ./ci/log-config.sh
      script: ./ci/build-linux-bazel.sh
    - os: linux
      compiler: clang
Gennadiy Civil's avatar
Gennadiy Civil committed
      sudo : true
      install: ./ci/install-linux.sh && ./ci/log-config.sh
      script: ./ci/build-linux-bazel.sh
Gennadiy Civil's avatar
Gennadiy Civil committed
      group: deprecated-2017Q4
      compiler: gcc
      install: ./ci/install-linux.sh && ./ci/log-config.sh
      script: ./ci/build-linux-autotools.sh
Gennadiy Civil's avatar
Gennadiy Civil committed
      env: VERBOSE=1 CXXFLAGS=-std=c++11
Gennadiy Civil's avatar
Gennadiy Civil committed
      group: deprecated-2017Q4
      compiler: gcc
      env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
Gennadiy Civil's avatar
Gennadiy Civil committed
      group: deprecated-2017Q4
      compiler: clang
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
    - os: linux
      compiler: clang
Gennadiy Civil's avatar
Gennadiy Civil committed
      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
    - os: osx
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
      if: type != pull_request
before_install:
  - |
    if [ "$TRAVIS_OS_NAME" != "osx" ] && [ ! -f ${TRAVIS_BUILD_DIR}/apt-cache/pkgcache.bin ]; then
       mkdir -p ${TRAVIS_BUILD_DIR}/apt-cache/archives/partial
       mkdir -p ${TRAVIS_BUILD_DIR}/apt-cache/partial
       mkdir -p ${TRAVIS_BUILD_DIR}/apt-cache/lists
       sudo apt-get -y -o Dir::cache=${TRAVIS_BUILD_DIR}/apt-cache -o Dir::State::Lists=${TRAVIS_BUILD_DIR}/apt-cache/lists update
       sudo apt-get install --download-only -o Dir::cache=${TRAVIS_BUILD_DIR}/apt-cache -o Dir::State::Lists=${TRAVIS_BUILD_DIR}/apt-cache/lists g++-4.9 clang-3.9
    fi
Dominic Jodoin's avatar
Dominic Jodoin committed
  - if [ "$TRAVIS_OS_NAME" != "osx" ]; then sudo apt-get install --no-download -o Dir::cache=${TRAVIS_BUILD_DIR}/apt-cache -o Dir::State::Lists=${TRAVIS_BUILD_DIR}/apt-cache/lists g++-4.9 clang-3.9; fi
  - if [ "$TRAVIS_OS_NAME" != "osx" ]; then sudo chown -R $USER ${TRAVIS_BUILD_DIR}/apt-cache; fi
# 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.
Billy Donahue's avatar
Billy Donahue committed
install:
  - ./ci/install-${TRAVIS_OS_NAME}.sh
  - . ./ci/env-${TRAVIS_OS_NAME}.sh
  - ./ci/log-config.sh

script: ./ci/travis.sh

# For sudo=false builds this section installs the necessary dependencies.
Billy Donahue's avatar
Billy Donahue committed
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
Billy Donahue's avatar
Billy Donahue committed
    sources:
    - ubuntu-toolchain-r-test
    - llvm-toolchain-precise-3.9

cache:
  directories:
    - apt-cache
Billy Donahue's avatar
Billy Donahue committed
notifications:
  email: false