98 lines
2.7 KiB
YAML
98 lines
2.7 KiB
YAML
language: c
|
|
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
compiler: gcc
|
|
cache: apt
|
|
dist: xenial
|
|
|
|
- os: osx
|
|
compiler: clang
|
|
osx_image: xcode11.5
|
|
|
|
env:
|
|
global:
|
|
- SHORT_COMMIT_HASH=`git rev-parse --short HEAD`
|
|
- VERSION_STRING=nightly-$SHORT_COMMIT_HASH
|
|
- BUILD_NAME="HackRF-`date +%Y-%m-%d`-$SHORT_COMMIT_HASH"
|
|
- ARTEFACT_BASE=$TRAVIS_BUILD_DIR/artefacts/
|
|
- ARTEFACT_PATH=$ARTEFACT_BASE/$BUILD_NAME
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- libusb-1.0-0-dev
|
|
- libfftw3-dev
|
|
- dfu-util
|
|
- gcc-arm-none-eabi
|
|
- libnewlib-arm-none-eabi
|
|
- libstdc++-arm-none-eabi-newlib
|
|
- python-yaml
|
|
|
|
homebrew:
|
|
taps: armmbed/formulae
|
|
packages:
|
|
- fftw
|
|
- arm-none-eabi-gcc
|
|
- dfu-util
|
|
|
|
before_install:
|
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then pip install PyYAML; fi
|
|
|
|
before_script:
|
|
- export CFLAGS="-Wall -Wextra -Werror"
|
|
|
|
script:
|
|
# Host code
|
|
- mkdir host/build
|
|
- cd host/build
|
|
- cmake ..
|
|
- make
|
|
# Firmware
|
|
# Set version string
|
|
- cd ../../firmware
|
|
- sed -e "s/\#set(VERSION.*/set(VERSION \"$VERSION_STRING\")/" -i".bak" hackrf-common.cmake
|
|
- mkdir build-hackrf-one
|
|
- mkdir build-jawbreaker
|
|
- mkdir build-rad1o
|
|
- cd libopencm3
|
|
- make
|
|
- cd ../build-hackrf-one
|
|
- cmake ..
|
|
- make
|
|
- cd ../build-jawbreaker
|
|
- cmake -DBOARD=JAWBREAKER ..
|
|
- make
|
|
- cd ../build-rad1o
|
|
- cmake -DBOARD=RAD1O ..
|
|
- make
|
|
|
|
after_success:
|
|
# Construct archive for deploying to ubertooth-nightlies
|
|
- mkdir -p $ARTEFACT_PATH/firmware-bin/
|
|
# Export HackRF git repo
|
|
- cd $TRAVIS_BUILD_DIR/
|
|
- git archive --format=tar HEAD | (cd $ARTEFACT_PATH && tar xf -)
|
|
# Set version string
|
|
- sed -e "s/\#set(RELEASE.*/set(RELEASE \"$VERSION_STRING\")/" -i".bak" $ARTEFACT_PATH/host/cmake/set_release.cmake
|
|
# Copy firmware to firmware-bin directory
|
|
- cd $TRAVIS_BUILD_DIR/firmware/
|
|
- cp cpld/sgpio_if/default.xsvf $ARTEFACT_PATH/firmware-bin/hackrf_cpld_default.xsvf
|
|
- cp build-hackrf-one/hackrf_usb/hackrf_usb.bin $ARTEFACT_PATH/firmware-bin/hackrf_one_usb.bin
|
|
- cp build-hackrf-one/hackrf_usb/hackrf_usb.dfu $ARTEFACT_PATH/firmware-bin/hackrf_one_usb.dfu
|
|
- cp build-jawbreaker/hackrf_usb/hackrf_usb.bin $ARTEFACT_PATH/firmware-bin/hackrf_jawbreaker_usb.bin
|
|
- cp build-jawbreaker/hackrf_usb/hackrf_usb.dfu $ARTEFACT_PATH/firmware-bin/hackrf_jawbreaker_usb.dfu
|
|
- cp build-rad1o/hackrf_usb/hackrf_usb.bin $ARTEFACT_PATH/firmware-bin/rad1o_usb.bin
|
|
- cp build-rad1o/hackrf_usb/hackrf_usb.dfu $ARTEFACT_PATH/firmware-bin/rad1o_usb.dfu
|
|
# Build the archive
|
|
- cd $ARTEFACT_BASE
|
|
- tar -cJvf $ARTEFACT_BASE/$BUILD_NAME.tar.xz $BUILD_NAME
|
|
|
|
deploy:
|
|
provider: script
|
|
skip-cleanup: true
|
|
script: bash $TRAVIS_BUILD_DIR/tools/deploy-nightly.sh
|
|
on:
|
|
branch: master
|