2018-09-06 10:44:16 +01:00

137 lines
4.7 KiB
YAML

dist: trusty
sudo: true
#
language: c
#
env:
global:
- IDE_VERSION=1.8.1
matrix:
- BOARD="multi4in1:STM32F1:multistm32f103c:upload_method=serialMethod"
- BOARD="multi4in1:STM32F1:multistm32f103c:upload_method=TxFlashMethod"
- BOARD="multi4in1:avr:multixmega32d4"
- BOARD="multi4in1:avr:multiatmega328p:bootloader=none"
- BOARD="multi4in1:avr:multiatmega328p:bootloader=optiboot"
#
notifications:
email: false
#
before_install:
#
# Fetch the tag information for the current branch
- git fetch origin --tags
#
# Publish the buildroot script folder
- chmod +x ${TRAVIS_BUILD_DIR}/buildroot/bin/*
- export PATH=${TRAVIS_BUILD_DIR}/buildroot/bin/:${PATH}
#
# Install Arduino IDE
- wget http://downloads.arduino.cc/arduino-$IDE_VERSION-linux64.tar.xz
- tar xf arduino-$IDE_VERSION-linux64.tar.xz
- mv arduino-$IDE_VERSION $HOME/arduino-ide
- export PATH=$PATH:$HOME/arduino-ide
# Set the Multi boards package URL
- arduino --pref "boardsmanager.additional.urls=https://raw.githubusercontent.com/pascallanger/DIY-Multiprotocol-TX-Module-Boards/master/package_multi_4in1_board_index.json" --save-prefs
#
- if [[ "$BOARD" =~ "multi4in1:STM32F1:" ]]; then
arduino --install-boards multi4in1:STM32F1;
fi
#
- if [[ "$BOARD" =~ "multi4in1:avr:" ]]; then
arduino --install-boards multi4in1:avr;
fi
#
- buildMulti() { arduino --verify --board $BOARD Multiprotocol/Multiprotocol.ino; }
- buildProtocol() { opt_disable $ALL_PROTOCOLS; opt_enable $1; buildMulti; }
#
install: true
before_script:
#
# Change current working directory to the build dir
- cd ${TRAVIS_BUILD_DIR}
# Log the initial Multi config
- cat Multiprotocol/_Config.h
# Derive the Multi protocols from the Multi source
- A7105_PROTOCOLS=$(sed -n 's/[\/\/]*[[:blank:]]*#define[[:blank:]]*\([[:alnum:]]*_A7105_INO\)\(.*\)/\1/p' Multiprotocol/_Config.h)
- CC2500_PROTOCOLS=$(sed -n 's/[\/\/]*[[:blank:]]*#define[[:blank:]]*\([[:alnum:]]*_CC2500_INO\)\(.*\)/\1/p' Multiprotocol/_Config.h)
- CYRF6936_PROTOCOLS=$(sed -n 's/[\/\/]*[[:blank:]]*#define[[:blank:]]*\([[:alnum:]]*_CYRF6936_INO\)\(.*\)/\1/p' Multiprotocol/_Config.h)
- NRF24L01_PROTOCOLS=$(sed -n 's/[\/\/]*[[:blank:]]*#define[[:blank:]]*\([[:alnum:]]*_NRF24L01_INO\)\(.*\)/\1/p' Multiprotocol/_Config.h)
- ALL_PROTOCOLS=$(echo $A7105_PROTOCOLS $CC2500_PROTOCOLS $CYRF6936_PROTOCOLS $NRF24L01_PROTOCOLS)
- echo $ALL_PROTOCOLS
#
# Enable CHECK_FOR_BOOTLOADER when needed
- if [[ "$BOARD" =~ ":upload_method=TxFlashMethod" ]] || [[ "$BOARD" =~ ":bootloader=optiboot" ]]; then
opt_enable CHECK_FOR_BOOTLOADER;
fi
#
# Trim the build down for the Atmega328p board
- if [[ "$BOARD" =~ "multi4in1:avr:multiatmega328p:" ]]; then
opt_disable $ALL_PROTOCOLS;
opt_enable FRSKYX_CC2500_INO AFHDS2A_A7105_INO MJXQ_NRF24L01_INO DSM_CYRF6936_INO;
fi
#
script:
# Build with all protocols enabled for STM32; a subset of protocols for Atmega
- buildMulti
#
# Serial only
- opt_disable ENABLE_PPM
- opt_enable ENABLE_SERIAL
- buildMulti
#
# PPM only
- opt_enable ENABLE_PPM
- opt_disable ENABLE_SERIAL
- buildMulti
#
# Re-enable PPM and serial
- opt_enable ENABLE_SERIAL
- opt_enable ENABLE_PPM
#
# Build each A7150 protocol
- buildProtocol AFHDS2A_A7105_INO
- buildProtocol FLYSKY_A7105_INO
- buildProtocol HUBSAN_A7105_INO
- buildProtocol BUGS_A7105_INO
#
# Build each CC2500 protocol
- buildProtocol CORONA_CC2500_INO
- buildProtocol FRSKYD_CC2500_INO
- buildProtocol FRSKYV_CC2500_INO
- buildProtocol FRSKYX_CC2500_INO
- buildProtocol HITEC_CC2500_INO
- buildProtocol SFHSS_CC2500_INO
#
# Build each CYRF6936 protocol
- buildProtocol DEVO_CYRF6936_INO
- buildProtocol DSM_CYRF6936_INO
- buildProtocol J6PRO_CYRF6936_INO
- buildProtocol WFLY_CYRF6936_INO
- buildProtocol WK2x01_CYRF6936_INO
#
# Build each NRF24L01 protocol
- buildProtocol ASSAN_NRF24L01_INO
- buildProtocol BAYANG_NRF24L01_INO
- buildProtocol CABELL_NRF24L01_INO
- buildProtocol CFLIE_NRF24L01_INO
- buildProtocol CG023_NRF24L01_INO
- buildProtocol CX10_NRF24L01_INO
- buildProtocol DM002_NRF24L01_INO
- buildProtocol ESKY_NRF24L01_INO
- buildProtocol ESKY150_NRF24L01_INO
- buildProtocol FQ777_NRF24L01_INO
- buildProtocol FY326_NRF24L01_INO
- buildProtocol GW008_NRF24L01_INO
- buildProtocol HISKY_NRF24L01_INO
- buildProtocol HONTAI_NRF24L01_INO
- buildProtocol H8_3D_NRF24L01_INO
- buildProtocol KN_NRF24L01_INO
- buildProtocol MJXQ_NRF24L01_INO
- buildProtocol MT99XX_NRF24L01_INO
- buildProtocol Q303_NRF24L01_INO
- buildProtocol SHENQI_NRF24L01_INO
- buildProtocol SLT_NRF24L01_INO
- buildProtocol SYMAX_NRF24L01_INO
- buildProtocol V2X2_NRF24L01_INO
- buildProtocol YD717_NRF24L01_INO