# 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.12" git: depth: false matrix: include: # Style checking - os: linux language: python python: - "3.5" addons: apt: packages: - "python3-pip" env: - TEST=STYLE - DEBUG=1 # newt build - 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 - os: windows env: - TEST=BUILD_TARGETS_WINDOWS - VM_AMOUNT=1 - TARGET_SET=1 before_install: - printenv - export GOPATH=$HOME/gopath - go version install: - git clone https://github.com/JuulLabs-OSS/mynewt-travis-ci $HOME/ci - chmod +x $HOME/ci/*.sh - | if [ "${TEST}" == "STYLE" ]; then pip3 install requests else $HOME/ci/${TRAVIS_OS_NAME}_travis_install.sh fi before_script: - | if [ "${TEST}" == "STYLE" ]; then $HOME/ci/install_uncrustify.sh else 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 mkdir -p targets cp -R $HOME/ci/mynewt-nimble-targets targets $HOME/ci/prepare_test.sh $VM_AMOUNT mkdir -p repos && pushd repos/ git clone --depth=1 https://github.com/apache/mynewt-core apache-mynewt-core git clone --depth=1 https://github.com/JuulLabs-OSS/mcuboot mcuboot git clone --depth=1 https://github.com/apache/mynewt-mcumgr apache-mynewt-mcumgr popd fi script: - | if [ "${TEST}" == "STYLE" ]; then python3 $HOME/ci/check_style.py else $HOME/ci/run_test.sh fi cache: directories: - $HOME/TOOLCHAIN - $HOME/Library/Caches/Homebrew