# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

sudo: required
language: cpp

stages:
  - linting
  - build

matrix:
  include:
  - os: osx
    stage: build
    compiler: clang
    # system cblas will be used by cmake for other xcode versions
    osx_image: xcode8
    name: "macOS 10.11 (C++)"
  - os: linux
    stage: build
    dist: trusty
    compiler: gcc
    name: "Ubuntu 14.04 (C++)"
  - os: linux
    stage: build
    dist: xenial
    compiler: gcc
    name: "Ubuntu 16.04 (C++)"
  - os: linux
    stage: build
    dist: bionic
    compiler: gcc
    name: "Ubuntu 18.04 (C++)"
  - os: linux
    stage: linting
    dist: bionic
    compiler: gcc
    name: "Ubuntu 18.04 (Static Analysis Python)"
    script:
      - bash -ex tool/linting/py.sh
  - os: linux
    stage: linting
    dist: bionic
    compiler: gcc
    name: "Ubuntu 18.04 (Static Analysis Cpp)"
    script:
      - bash -ex tool/linting/cpp.sh

install:
  - travis_wait bash -ex tool/travis/depends.sh

after_success:
  - bash <(curl -s https://codecov.io/bash)

script:
  - bash -ex tool/travis/build.sh
