farmbot-arduino-firmware/.circleci/config.yml

72 lines
2.6 KiB
YAML

version: 2.1
jobs:
build:
machine: true
parameters:
arduino_version:
description: "Arduino version"
default: "1.8.12"
type: string
steps:
- checkout
- restore_cache:
keys:
- arduino-<< parameters.arduino_version >>
- run:
name: Install Arduino
command: |
if [ ! -d "$HOME/arduino-<< parameters.arduino_version >>" ]
then
wget https://downloads.arduino.cc/arduino-<< parameters.arduino_version >>-linux64.tar.xz
tar xf arduino-<< parameters.arduino_version >>-linux64.tar.xz -C $HOME
fi
- save_cache:
key: arduino-<< parameters.arduino_version >>
paths:
- ~/arduino-<< parameters.arduino_version >>
- run:
name: Create bin directory
command: mkdir -p bin
- run:
name: Compile Genesis v1.2 (RAMPS_V14)
command: make dep_core dep_Servo dep_SPI dep_EEPROM target_ramps_v14 remove_temp
when: always
- run:
name: Compile Genesis v1.3 (FARMDUINO_V10)
command: make dep_core dep_Servo dep_SPI dep_EEPROM target_farmduino_v10 remove_temp
when: always
- run:
name: Compile Genesis v1.4 (FARMDUINO_V14)
command: make dep_core dep_Servo dep_SPI dep_EEPROM target_farmduino_k14 remove_temp
when: always
- run:
name: Compile Genesis v1.5 (FARMDUINO_V30)
command: make dep_core dep_Servo dep_SPI dep_EEPROM target_farmduino_k15 remove_temp
when: always
- run:
name: Compile Express v1.0 (FARMDUINO_EXP_V20)
command: make dep_core dep_Servo dep_SPI dep_EEPROM target_express_k10 remove_temp
when: always
- run:
name: Compile all
command: |
make force_clean
make
- run:
name: Check strings
command: make strings_test
- run:
name: Check software version
command: |
export SOFTWARE_VERSION=$(cat src/Config.h | grep -w SOFTWARE_VERSION | cut -d'"' -f 2 | cut -d'\' -f 1)
strings bin/arduino_firmware.hex.bin | grep $SOFTWARE_VERSION
export SHORT_COMMIT_SHA=$(echo $CIRCLE_SHA1 | cut -c1-8)
export COMMIT_SUFFIX=$(strings bin/arduino_firmware.hex.bin | grep $SHORT_COMMIT_SHA)
export NEW_FW_DIR=bin/$SOFTWARE_VERSION$COMMIT_SUFFIX
mkdir $NEW_FW_DIR
rm bin/*.bin
mv bin/*.hex $NEW_FW_DIR
- store_artifacts:
path: bin