# 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.

language: go

_addons: &addon_conf
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-multilib
      - gcc-7-multilib

go:
  - "1.10"

git:
  depth: false

matrix:
  include:
    # newt build <targets>
    - os: linux
      addons: *addon_conf
      env:
        - TEST=BUILD_TARGETS
        - VM_AMOUNT=4
        - TARGET_SET=1
    - os: linux
      addons: *addon_conf
      env:
        - TEST=BUILD_TARGETS
        - VM_AMOUNT=4
        - TARGET_SET=2
    - os: linux
      addons: *addon_conf
      env:
        - TEST=BUILD_TARGETS
        - VM_AMOUNT=4
        - TARGET_SET=3
    - os: linux
      addons: *addon_conf
      env:
        - TEST=BUILD_TARGETS
        - VM_AMOUNT=4
        - TARGET_SET=4

    # newt test all (Linux)
    - os: linux
      addons: *addon_conf
      env:
        - TEST=TEST_ALL
        - VM_AMOUNT=2
        - TARGET_SET=1
    - os: linux
      addons: *addon_conf
      env:
        - TEST=TEST_ALL
        - VM_AMOUNT=2
        - TARGET_SET=2

    # ports
    - os: linux
      addons: *addon_conf
      env:
        - TEST=BUILD_PORTS
        - VM_AMOUNT=1
        - TARGET_SET=1

    # newt test all
    - os: osx
      osx_image: xcode9.2
      env:
        - TEST=TEST_ALL
        - VM_AMOUNT=3
        - TARGET_SET=1
    - os: osx
      osx_image: xcode9.2
      env:
        - TEST=TEST_ALL
        - VM_AMOUNT=3
        - TARGET_SET=2
    - os: osx
      osx_image: xcode9.2
      env:
        - TEST=TEST_ALL
        - VM_AMOUNT=3
        - TARGET_SET=3

before_install:
  - printenv
  - export GOPATH=$HOME/gopath
  - go version

install:
  - git clone https://github.com/runtimeco/mynewt-travis-ci $HOME/ci
  - chmod +x $HOME/ci/*.sh
  - $HOME/ci/${TRAVIS_OS_NAME}_travis_install.sh

before_script:
  - newt version
  - gcc --version
  - if [ "${TEST}" != "TEST_ALL" ]; then arm-none-eabi-gcc --version; fi
  - cp -R $HOME/ci/mynewt-nimble-project.yml project.yml
  - cp -R $HOME/ci/mynewt-nimble-targets targets
  - $HOME/ci/prepare_test.sh $VM_AMOUNT
  - mkdir -p repos && pushd repos/
  - git clone https://github.com/apache/mynewt-core apache-mynewt-core
  - popd

script:
  - $HOME/ci/run_test.sh

cache:
  directories:
  - $HOME/TOOLCHAIN
  - $HOME/Library/Caches/Homebrew
