language: cpp
dist: xenial
sudo: required
env:
  global:
    - JOB_NAME=limited-build
    - WAF_JOBS=2

matrix:
  include:
    # Linux/gcc
    # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
    - os: linux
      env: COMPILER=g++-5
    - os: linux
      env: COMPILER=g++-6
    - os: linux
      env: COMPILER=g++-7
    - os: linux
      env: COMPILER=g++-8

    # Linux/clang
    # https://apt.llvm.org/
    - os: linux
      env: COMPILER=clang++-3.6
    - os: linux
      env: COMPILER=clang++-3.7 DISABLE_ASAN=yes
    - os: linux
      env: COMPILER=clang++-3.8
    - os: linux
      env: COMPILER=clang++-3.9
    - os: linux
      env: COMPILER=clang++-4.0
    - os: linux
      env: COMPILER=clang++-5.0
    - os: linux
      env: COMPILER=clang++-6.0
    - os: linux
      env: COMPILER=clang++-7
    - os: linux
      env: COMPILER=clang++-8

    # macOS/clang
    # https://docs.travis-ci.com/user/reference/osx/#OS-X-Version
    - os: osx
      osx_image: xcode7.3
      env: OSX_VERSION=10.11
    - os: osx
      osx_image: xcode8
      env: OSX_VERSION=10.11
    - os: osx
      osx_image: xcode8.3
      env: OSX_VERSION=10.12
    - os: osx
      osx_image: xcode9.2
      env: OSX_VERSION=10.12
    - os: osx
      osx_image: xcode9.4
      env: OSX_VERSION=10.13
    - os: osx
      osx_image: xcode10.1
      env: OSX_VERSION=10.13

  allow_failures:
    - env: COMPILER=clang++-3.6
    - env: COMPILER=clang++-3.7 DISABLE_ASAN=yes
    - env: COMPILER=clang++-8

  fast_finish: true

install: |
    case ${COMPILER} in
      g++-[6789])
        travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
        travis_retry sudo apt-get -qq update
        travis_retry sudo apt-get -qy install "${COMPILER}"
        ;;
      clang++-*)
        CLANG_VERSION=${COMPILER/clang++}
        if [[ ${CLANG_VERSION} != "-3."* ]]; then
          travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
          travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${CLANG_VERSION/-8} main"
        fi
        travis_retry sudo apt-get -qq update
        travis_retry sudo apt-get -qy install "clang${CLANG_VERSION}"
        ;;
    esac

before_script:
  - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-16.04"; fi
  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi
  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then brew update; fi
  # workaround for https://github.com/Homebrew/homebrew-core/issues/26358
  - if [[ ${OSX_VERSION} == 10.12 ]]; then brew outdated python || brew upgrade python; fi
  # workaround for https://github.com/travis-ci/travis-ci/issues/6688
  - if [[ ${OSX_VERSION} == 10.12 ]]; then /usr/bin/yes | pip2 uninstall numpy || true; fi
  # workaround for https://github.com/travis-ci/travis-ci/issues/8826
  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then brew cask uninstall --force oclint || true; fi
  - if [[ -n ${COMPILER} ]]; then export CXX=${COMPILER}; fi
  - ${CXX:-c++} --version
  - python --version

script:
  - ./.jenkins
