image: derfnull/multipass-ci:2020.08.13.2

stages:
  - build
  - test

build_posix:
  stage: build
  script:
  - mkdir -p build
  - ./mp arch=posix app=donothing
  - ./mp arch=posix app=ledblink loop=1 timer_s=1
  - ./mp arch=posix app=sysinfo

build_msp430fr5969lp:
  stage: build
  before_script:
  - export PATH="/opt/msp430/ti/msp430-gcc-full-linux-5.1.2.0/bin:$PATH"
  script:
  - curl -s https://ess.cs.uos.de/static/.gitlab-ci/msp430-gcc-full-linux-5.1.2.0.tar.xz | tar -C /opt -xJf -
  - mkdir -p build
  - make -B arch=msp430fr5969lp app=donothing
  - make -B arch=msp430fr5969lp app=ledblink loop=1 timer_s=1
  - make -B arch=msp430fr5969lp app=sysinfo

build_msp430fr5994lp:
  stage: build
  before_script:
  - export PATH="/opt/msp430/ti/msp430-gcc-full-linux-5.1.2.0/bin:$PATH"
  script:
  - curl -s https://ess.cs.uos.de/static/.gitlab-ci/msp430-gcc-full-linux-5.1.2.0.tar.xz | tar -C /opt -xJf -
  - mkdir -p build
  - make -B arch=msp430fr5994lp app=donothing
  - make -B arch=msp430fr5994lp app=ledblink loop=1 timer_s=1
  - make -B arch=msp430fr5994lp app=sysinfo

build_stm32f446re-nucleo:
  stage: build
  script:
  - apt-get update -qy
  - apt-get install -y --no-install-recommends gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib git python3
  - mkdir -p build
  - make arch=stm32f446re-nucleo ext/libopencm3/lib/libopencm3_stm32f4.a
  - make arch=stm32f446re-nucleo app=donothing
  - find src -name '*.o' -delete
  - make arch=stm32f446re-nucleo app=ledblink loop=1 timer_s=1
  - find src -name '*.o' -delete
  - make arch=stm32f446re-nucleo app=sysinfo

test_posix:
  stage: test
  script:
  - mkdir -p build
  - ./mpm arch=posix app=donothing
