sudo: false
dist: trusty
language: c

compiler:
  - clang
  - gcc

env:
  - GOAL=stm32 TOOLCHAIN_SHORTVER=7-2017q4 TOOLCHAIN_LONGVER=gcc-arm-none-eabi-7-2017-q4-major
  - GOAL=unix
  - GOAL=src

matrix:
  exclude:
    - compiler: clang
      env: GOAL=stm32
    - compiler: clang
      env: GOAL=src

addons:
  apt:
    packages:
    - build-essential
    - gcc-multilib
    - libusb-1.0-0-dev
    - libudev-dev
    - python3
    - python3-pip

before_install:
    - pip3 install --user pipenv

install:
    - pipenv install

before_script:
    - test "$GOAL" != "stm32" || wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/$TOOLCHAIN_SHORTVER/$TOOLCHAIN_LONGVER-linux.tar.bz2
    - test "$GOAL" != "stm32" || tar xfj $TOOLCHAIN_LONGVER-linux.tar.bz2
    - test "$GOAL" != "stm32" || export PATH=$PWD/$TOOLCHAIN_LONGVER/bin:$PATH

script:
  - test "$GOAL" != "stm32" || pipenv run make build_cross
  - test "$GOAL" != "stm32" || pipenv run make build_boardloader
  - test "$GOAL" != "stm32" || pipenv run make build_bootloader
  - test "$GOAL" != "stm32" || pipenv run make build_prodtest
  - test "$GOAL" != "stm32" || pipenv run make build_firmware
  - test "$GOAL" != "stm32" || pipenv run make sizecheck

  - test "$GOAL" != "unix" || pipenv run make build_unix_noui
  - test "$GOAL" != "unix" || pipenv run make test
  - test "$GOAL" != "unix" || pipenv run make test_emu

  # - test "$GOAL" != "src" || make style

notifications:
  webhooks:
    urls:
      - http://ci-bot.satoshilabs.com:5000/travis
    on_success: always
    on_failure: always
    on_start: always
