102 lines
3.5 KiB
YAML
102 lines
3.5 KiB
YAML
language: minimal # setting language to C will override cross-compiler and fail
|
|
|
|
compiler:
|
|
- gcc
|
|
|
|
sudo: required
|
|
dist: trusty
|
|
|
|
env:
|
|
global:
|
|
- ZEPHYR_TOOLCHAIN_VARIANT=zephyr
|
|
- ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk
|
|
- ZEPHYR_BASE=$TRAVIS_BUILD_DIR/deps/zephyr
|
|
- ZEPHYR_SDK_VERSION=0.9.3
|
|
- ZEPHYR_SDK_DOWNLOAD_FOLDER=https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/$ZEPHYR_SDK_VERSION
|
|
- ZEPHYR_SDK_SETUP_BINARY=zephyr-sdk-$ZEPHYR_SDK_VERSION-setup.run
|
|
- ZEPHYR_SDK_DOWNLOAD_URL=$ZEPHYR_SDK_DOWNLOAD_FOLDER/$ZEPHYR_SDK_SETUP_BINARY
|
|
- FREERTOS_ZIP_URL=https://cfhcable.dl.sourceforge.net/project/freertos/FreeRTOS/V10.0.1/FreeRTOSv10.0.1.zip
|
|
- GCC_ARM_COMPILER_PACKAGE=gcc-arm-embedded_7-2018q2-1~trusty1_amd64.deb
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
- os: linux
|
|
env: TARGET="zephyr"
|
|
- os: linux
|
|
env: TARGET="linux"
|
|
- os: linux
|
|
env: TARGET="generic"
|
|
- os: linux
|
|
env: TARGET="freertos"
|
|
|
|
cache:
|
|
directories:
|
|
- $ZEPHYR_SDK_INSTALL_DIR
|
|
- /usr/local/bin
|
|
|
|
before_install:
|
|
- if [[ "$TARGET" == "zephyr" ]]; then
|
|
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test &&
|
|
sudo apt-get update -qq &&
|
|
sudo apt-get install libc6-dev-i386 make gperf gcc g++ python3-ply python3-yaml python3-pip device-tree-compiler ncurses-dev uglifyjs -qq &&
|
|
sudo pip3 install pyelftools;
|
|
fi
|
|
- if [[ "$TARGET" == "linux" ]]; then
|
|
sudo apt-get update -qq &&
|
|
sudo apt-get install libsysfs-dev libhugetlbfs-dev make gcc;
|
|
fi
|
|
# This is to kick start CI on generic platform. Will need to have a proper way to get the required packages
|
|
- if [[ "$TARGET" == "generic" || "$TARGET" == "freertos" ]]; then
|
|
wget http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu/pool/main/g/gcc-arm-none-eabi/${GCC_ARM_COMPILER_PACKAGE} &&
|
|
sudo dpkg -i ${GCC_ARM_COMPILER_PACKAGE};
|
|
fi
|
|
- if [[ "$TARGET" == "freertos" ]]; then
|
|
wget $FREERTOS_ZIP_URL &&
|
|
pwd && ls &&
|
|
unzip FreeRTOSv10.0.1.zip > /dev/null;
|
|
fi
|
|
|
|
install: >
|
|
if [[ "$TARGET" == "zephyr" && "$(cat $ZEPHYR_SDK_INSTALL_DIR/sdk_version)" != "$ZEPHYR_SDK_VERSION" ]]; then
|
|
wget $ZEPHYR_SDK_DOWNLOAD_URL &&
|
|
chmod +x $ZEPHYR_SDK_SETUP_BINARY &&
|
|
rm -rf $ZEPHYR_SDK_INSTALL_DIR &&
|
|
./$ZEPHYR_SDK_SETUP_BINARY --quiet -- -y -d $ZEPHYR_SDK_INSTALL_DIR > /dev/null;
|
|
fi
|
|
|
|
before_script: >
|
|
if [[ "$TARGET" == "zephyr" ]]; then
|
|
cd .. &&
|
|
git clone --depth=1 https://github.com/zephyrproject-rtos/zephyr.git &&
|
|
cd zephyr &&
|
|
source zephyr-env.sh;
|
|
fi
|
|
|
|
script:
|
|
- if [[ "$TARGET" == "zephyr" ]]; then
|
|
mkdir -p ../libmetal/build-zephyr &&
|
|
cd ../libmetal/build-zephyr &&
|
|
cmake .. -DWITH_ZEPHYR=on -DBOARD=qemu_cortex_m3 -DWITH_TESTS=on &&
|
|
make VERBOSE=1;
|
|
fi
|
|
- if [[ "$TARGET" == "linux" ]]; then
|
|
mkdir -p build-linux &&
|
|
cd build-linux &&
|
|
cmake .. -DWITH_TESTS_EXEC=on &&
|
|
make VERBOSE=1 all test;
|
|
fi
|
|
- if [[ "$TARGET" == "generic" ]]; then
|
|
mkdir -p build-generic &&
|
|
cd build-generic &&
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=template-generic &&
|
|
make VERBOSE=1;
|
|
fi
|
|
- if [[ "$TARGET" == "freertos" ]]; then
|
|
mkdir -p build-freertos &&
|
|
cd build-freertos &&
|
|
export &&
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=template-freertos -DCMAKE_C_FLAGS="-I$PWD/../FreeRTOSv10.0.1/FreeRTOS/Source/include/ -I$PWD/../FreeRTOSv10.0.1/FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley -I$PWD/../FreeRTOSv10.0.1/FreeRTOS/Source/portable/GCC/ARM_CM3" &&
|
|
make VERBOSE=1;
|
|
fi
|