|
| 1 | +language: minimal # setting language to C will override cross-compiler and fail |
| 2 | + |
| 3 | +compiler: |
| 4 | + - gcc |
| 5 | + |
| 6 | +sudo: required |
| 7 | +dist: trusty |
| 8 | + |
| 9 | +env: |
| 10 | + global: |
| 11 | + - ZEPHYR_GCC_VARIANT=zephyr |
| 12 | + - ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk |
| 13 | + - ZEPHYR_BASE=$TRAVIS_BUILD_DIR/deps/zephyr |
| 14 | + - ZEPHYR_SDK_VERSION=0.9.2 |
| 15 | + - ZEPHYR_SDK_DOWNLOAD_FOLDER=https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases/download/$ZEPHYR_SDK_VERSION |
| 16 | + - ZEPHYR_SDK_SETUP_BINARY=zephyr-sdk-$ZEPHYR_SDK_VERSION-setup.run |
| 17 | + - ZEPHYR_SDK_DOWNLOAD_URL=$ZEPHYR_SDK_DOWNLOAD_FOLDER/$ZEPHYR_SDK_SETUP_BINARY |
| 18 | + - FREERTOS_ZIP_URL=https://downloads.sourceforge.net/project/freertos/FreeRTOS/V10.0.1/FreeRTOSv10.0.1.zip |
| 19 | + |
| 20 | +matrix: |
| 21 | + fast_finish: true |
| 22 | + include: |
| 23 | + - os: linux |
| 24 | + env: TARGET="zephyr" |
| 25 | + - os: linux |
| 26 | + env: TARGET="linux" |
| 27 | + - os: linux |
| 28 | + env: TARGET="generic" |
| 29 | + - os: linux |
| 30 | + env: TARGET="freertos" |
| 31 | + |
| 32 | +cache: |
| 33 | + directories: |
| 34 | + - $ZEPHYR_SDK_INSTALL_DIR |
| 35 | + - /usr/local/bin |
| 36 | + |
| 37 | +before_install: |
| 38 | + - if [[ "$TARGET" == "zephyr" ]]; then |
| 39 | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && |
| 40 | + sudo apt-get update -qq && |
| 41 | + sudo apt-get install libc6-dev-i386 make gperf gcc g++ python3-ply python3-yaml python3-pip device-tree-compiler ncurses-dev uglifyjs -qq && |
| 42 | + sudo pip3 install pyelftools; |
| 43 | + fi |
| 44 | + - if [[ "$TARGET" == "linux" ]]; then |
| 45 | + sudo apt-get update -qq && |
| 46 | + sudo apt-get install libsysfs-dev libhugetlbfs-dev make gcc; |
| 47 | + fi |
| 48 | +# This is to kick start CI on generic platform. Will need to have a proper way to get the required packages |
| 49 | + - if [[ "$TARGET" == "generic" || "$TARGET" == "freertos" ]]; then |
| 50 | + wget http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntu/pool/main/g/gcc-arm-none-eabi/gcc-arm-embedded_7-2017q4-1~trusty3_amd64.deb && |
| 51 | + sudo dpkg -i gcc-arm-embedded_7-2017q4-1~trusty3_amd64.deb; |
| 52 | + fi |
| 53 | + - if [[ "$TARGET" == "freertos" ]]; then |
| 54 | + wget $FREERTOS_ZIP_URL && |
| 55 | + pwd && ls && |
| 56 | + unzip FreeRTOSv10.0.1.zip > /dev/null; |
| 57 | + fi |
| 58 | + |
| 59 | +install: > |
| 60 | + if [[ "$TARGET" == "zephyr" && "$(cat $ZEPHYR_SDK_INSTALL_DIR/sdk_version)" != "$ZEPHYR_SDK_VERSION" ]]; then |
| 61 | + wget $ZEPHYR_SDK_DOWNLOAD_URL && |
| 62 | + chmod +x $ZEPHYR_SDK_SETUP_BINARY && |
| 63 | + rm -rf $ZEPHYR_SDK_INSTALL_DIR && |
| 64 | + ./$ZEPHYR_SDK_SETUP_BINARY --quiet -- -y -d $ZEPHYR_SDK_INSTALL_DIR > /dev/null; |
| 65 | + fi |
| 66 | +
|
| 67 | +before_script: > |
| 68 | + if [[ "$TARGET" == "zephyr" ]]; then |
| 69 | + cd .. && |
| 70 | + git clone --depth=1 https://github.com/zephyrproject-rtos/zephyr.git && |
| 71 | + cd zephyr && |
| 72 | + source zephyr-env.sh; |
| 73 | + fi |
| 74 | +
|
| 75 | +script: |
| 76 | + - if [[ "$TARGET" == "zephyr" ]]; then |
| 77 | + mkdir -p ../libmetal/build-zephyr && |
| 78 | + cd ../libmetal/build-zephyr && |
| 79 | + cmake .. -DWITH_ZEPHYR=on -DBOARD=qemu_cortex_m3 -DWITH_TESTS=on && |
| 80 | + make VERBOSE=1; |
| 81 | + fi |
| 82 | + - if [[ "$TARGET" == "linux" ]]; then |
| 83 | + mkdir -p build-linux && |
| 84 | + cd build-linux && |
| 85 | + cmake .. -DWITH_TESTS_EXEC=on && |
| 86 | + make VERBOSE=1 all test; |
| 87 | + fi |
| 88 | + - if [[ "$TARGET" == "generic" ]]; then |
| 89 | + mkdir -p build-generic && |
| 90 | + cd build-generic && |
| 91 | + cmake .. -DCMAKE_TOOLCHAIN_FILE=template-generic && |
| 92 | + make VERBOSE=1; |
| 93 | + fi |
| 94 | + - if [[ "$TARGET" == "freertos" ]]; then |
| 95 | + mkdir -p build-freertos && |
| 96 | + cd build-freertos && |
| 97 | + export && |
| 98 | + 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" && |
| 99 | + make VERBOSE=1; |
| 100 | + fi |
0 commit comments