version: ~> 1.0
language: cpp
os: linux
dist: bionic

arch:
  - amd64
  - arm64
  - ppc64le
  - s390x

env:
  - COMPILER=g++-7
  - COMPILER=g++-9
  - COMPILER=clang++-6.0
  - COMPILER=clang++-9

jobs:
  include:
    # Linux
    - env: COMPILER=g++-5
    - env: COMPILER=g++-6
    - env: COMPILER=g++-8
    - env: COMPILER=clang++-4.0
    - env: COMPILER=clang++-5.0
    - env: COMPILER=clang++-7
    - env: COMPILER=clang++-8
    - env: COMPILER=clang++-10
    - env: COMPILER=clang++-11

    # macOS
    - os: osx
      osx_image: xcode9.4
      env: # default compiler
    - os: osx
      osx_image: xcode10.1
      env: # default compiler
    - os: osx
      osx_image: xcode10.3
      env: # default compiler
    - os: osx
      osx_image: xcode11.3
      env: # default compiler
    - os: osx
      osx_image: xcode11.6
      env: # default compiler
    - os: osx
      osx_image: xcode12
      env: # default compiler

  allow_failures:
    - env: COMPILER=g++-5
    - env: COMPILER=g++-6
    - env: COMPILER=clang++-4.0
    - env: COMPILER=clang++-11

  fast_finish: true

before_install:
  - |
    : Adding apt repositories
    case ${COMPILER} in
      g++-9)
        # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
        travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
        travis_retry sudo apt-get -qq update
        ;;
      clang++-1?)
        # https://apt.llvm.org/
        LLVM_REPO=${COMPILER/clang++/llvm-toolchain-${TRAVIS_DIST}}
        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/${TRAVIS_DIST}/ ${LLVM_REPO%-11} main"
        travis_retry sudo apt-get -qq update
        ;;
    esac

install:
  - |
    : Installing C++ compiler
    if [[ -n ${COMPILER} ]]; then
      travis_retry sudo apt-get -qy install ${COMPILER/clang++/clang}
    fi

before_script:
  - |
    : Setting environment variables
    if [[ -n ${COMPILER} ]]; then
      export CXX=${COMPILER}
    fi
    case ${TRAVIS_OS_NAME} in
      linux)  export NODE_LABELS="Linux Ubuntu Ubuntu-18.04" ;;
      osx)    export NODE_LABELS="OSX OSX-$(sw_vers -productVersion | cut -d . -f -2)" ;;
    esac
    export WAF_JOBS=2
  - |
    : Enabling workarounds
    case "${TRAVIS_CPU_ARCH},${COMPILER}" in
      arm64,g++*)
        # Avoid exceeding the per-job time limit
        export JOB_NAME=limited-build
        ;;
      ppc64le,g++-7)
        # AddressSanitizer does not seem to be working
        export DISABLE_ASAN=yes
        ;;
      *,clang++-8)
        # https://bugs.llvm.org/show_bug.cgi?id=40808
        export DISABLE_ASAN=yes
        ;;
    esac
  - ${CXX:-c++} --version

script:
  - ./.jenkins
