910f7b1ac8
Make Travis CI use the GNU ARM Embedded toolchain version specified by the READMEs, instead of automatically using the latest version provided by the PPA. In this way, the READMEs will still be correct after a PPA upgrade, and the version used by Contiki is under control. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
143 lines
5.7 KiB
YAML
143 lines
5.7 KiB
YAML
notifications:
|
|
email: false
|
|
language: c #NOTE: this will set CC=gcc which might cause trouble
|
|
before_script:
|
|
- WGET="travis_retry wget --continue --tries=20 --waitretry=10 --retry-connrefused --no-dns-cache --timeout 300"
|
|
- sudo apt-get -qq update
|
|
|
|
## Support building a binary that is identical to the CI
|
|
- echo -n "Contiki will be compiled with RELSTR=" ; git --git-dir .git describe --tags --always
|
|
|
|
## Install doxygen
|
|
- if [ ${BUILD_CATEGORY:-0} = doxygen ] ; then
|
|
sudo add-apt-repository ppa:libreoffice/libreoffice-4-4 -y && sudo apt-get -qq update &&
|
|
sudo apt-get --no-install-suggests --no-install-recommends -qq install doxygen &&
|
|
doxygen --version ;
|
|
fi
|
|
|
|
## Install msp430 toolchain
|
|
- sudo apt-get -qq install lib32z1
|
|
- $WGET http://simonduq.github.io/resources/mspgcc-4.7.2-compiled.tar.bz2 &&
|
|
tar xjf mspgcc*.tar.bz2 -C /tmp/ &&
|
|
sudo cp -f -r /tmp/msp430/* /usr/local/ &&
|
|
rm -rf /tmp/msp430 mspgcc*.tar.bz2 &&
|
|
msp430-gcc --version
|
|
|
|
## Install avr toolchain
|
|
- sudo apt-get -qq install gcc-avr avr-libc
|
|
|
|
## Install 32-bit compatibility libraries
|
|
- sudo apt-get -qq install libc6:i386 libgcc1:i386 gcc-4.6-base:i386
|
|
libstdc++5:i386 libstdc++6:i386
|
|
|
|
## Install old APCS ARM toolchain for mc1233x and mbxxx
|
|
- if [ ${BUILD_ARCH:-0} = arm-apcs ] ; then
|
|
$WGET https://raw.githubusercontent.com/wiki/malvira/libmc1322x/files/arm-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 &&
|
|
tar xjf arm-2008q3*.tar.bz2 -C /tmp/ &&
|
|
sudo cp -f -r /tmp/arm-2008q3/* /usr/ &&
|
|
rm -rf /tmp/arm-2008q3 arm-2008q3*.tar.bz2 &&
|
|
sudo apt-get -qq install libconfig-dev uuid-dev libqrencode-dev &&
|
|
arm-none-eabi-gcc --version ;
|
|
fi
|
|
|
|
## Install mainline ARM toolchain. gcc-arm-none-eabi is available
|
|
## in Ubuntu >= 14.04, but this external PPA is needed for 12.04.
|
|
## Install srecord
|
|
- if [ ${BUILD_ARCH:-0} = arm-aapcs ] ; then
|
|
sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa &&
|
|
sudo apt-get -qq update &&
|
|
sudo apt-get -qq install gcc-arm-embedded=5-2015q4-1~precise1 srecord &&
|
|
arm-none-eabi-gcc --version ;
|
|
fi
|
|
|
|
## Install RL78 GCC toolchain
|
|
- sudo apt-get install libncurses5:i386 zlib1g:i386
|
|
- $WGET http://adamdunkels.github.io/contiki-fork/gnurl78-v13.02-elf_1-2_i386.deb &&
|
|
sudo dpkg -i gnurl78*.deb
|
|
|
|
## Install SDCC from a purpose-built bundle
|
|
- if [ ${BUILD_ARCH:-0} = 8051 ] ; then
|
|
$WGET https://raw.githubusercontent.com/wiki/g-oikonomou/contiki-sensinode/files/sdcc.tar.gz &&
|
|
tar xzf sdcc.tar.gz -C /tmp/ &&
|
|
sudo cp -f -r /tmp/sdcc/* /usr/local/ &&
|
|
rm -rf /tmp/sdcc sdcc.tar.gz &&
|
|
sdcc --version &&
|
|
sudo apt-get -qq install srecord ;
|
|
fi
|
|
|
|
## Clone and build cc65 when testing 6502 ports
|
|
- if [ ${BUILD_ARCH:-0} = 6502 ] ; then
|
|
git clone https://github.com/cc65/cc65 /tmp/cc65 &&
|
|
make -C /tmp/cc65 bin apple2enh atarixl c64 c128 &&
|
|
sudo make -C /tmp/cc65 avail &&
|
|
export CC65_HOME=/tmp/cc65/ &&
|
|
cc65 --version ;
|
|
fi
|
|
|
|
## Install NXP toolchain
|
|
- if [ ${BUILD_ARCH:-0} = jn516x ] ; then
|
|
$WGET http://simonduq.github.io/resources/ba-elf-gcc-4.7.4-part1.tar.bz2 &&
|
|
$WGET http://simonduq.github.io/resources/ba-elf-gcc-4.7.4-part2.tar.bz2 &&
|
|
$WGET http://simonduq.github.io/resources/jn516x-sdk-4163.tar.bz2 &&
|
|
mkdir /tmp/jn516x-sdk /tmp/ba-elf-gcc &&
|
|
tar xjf jn516x-sdk-*.tar.bz2 -C /tmp/jn516x-sdk &&
|
|
tar xjf ba-elf-gcc-*part1.tar.bz2 -C /tmp/ba-elf-gcc &&
|
|
tar xjf ba-elf-gcc-*part2.tar.bz2 -C /tmp/ba-elf-gcc &&
|
|
sudo cp -f -r /tmp/jn516x-sdk /usr/ &&
|
|
sudo cp -f -r /tmp/ba-elf-gcc /usr/ &&
|
|
export PATH=/usr/ba-elf-gcc/bin:$PATH &&
|
|
rm -rf /tmp/ba-elf-gcc* /tmp/jn516x-sdk* &&
|
|
ba-elf-gcc --version ;
|
|
fi
|
|
|
|
## Compile cooja.jar only when it's going to be needed
|
|
- if [ ${BUILD_CATEGORY:-sim} = sim ] ; then
|
|
java -version &&
|
|
ant -q -f tools/cooja/build.xml jar &&
|
|
sudo java -Xshare:dump -version ;
|
|
fi
|
|
|
|
script:
|
|
## regression-tests/Makefile handles most of generic logic
|
|
- "make -C regression-tests/??-$BUILD_TYPE RUNALL=true summary"
|
|
|
|
after_script:
|
|
## Print cooja test logs
|
|
- "[ ${BUILD_CATEGORY:-sim} = sim ] && tail regression-tests/??-$BUILD_TYPE/*.testlog"
|
|
## Print a basic summary
|
|
- "echo 'Summary:'; cat regression-tests/??-$BUILD_TYPE/summary"
|
|
- "FAILS=`grep -c ' FAIL ' regression-tests/??-$BUILD_TYPE/summary`"
|
|
## This will detect whether the build should pass or fail
|
|
- "test $FAILS -eq 0; exit $?"
|
|
|
|
|
|
env:
|
|
## This magically kick-off parallel jobs for each of the for the sets
|
|
## of environment variable defined below
|
|
- BUILD_TYPE='doxygen' BUILD_CATEGORY='doxygen'
|
|
- BUILD_TYPE='compile-base' BUILD_CATEGORY='compile'
|
|
- BUILD_TYPE='compile-tools' BUILD_CATEGORY='compile'
|
|
- BUILD_TYPE='collect'
|
|
- BUILD_TYPE='collect-lossy'
|
|
- BUILD_TYPE='rpl'
|
|
- BUILD_TYPE='large-rpl'
|
|
- BUILD_TYPE='rime'
|
|
- BUILD_TYPE='ipv6'
|
|
- BUILD_TYPE='ip64' MAKE_TARGETS='cooja'
|
|
- BUILD_TYPE='hello-world'
|
|
- BUILD_TYPE='base'
|
|
# XXX: netperf disabled b/c it's flaky
|
|
# - BUILD_TYPE='netperf' MAKE_TARGETS='cooja'
|
|
- BUILD_TYPE='shell'
|
|
- BUILD_TYPE='elfloader'
|
|
# Tests under the ipv4 dir are individually disabled. Thus the entire job can be off
|
|
# - BUILD_TYPE='ipv4'
|
|
- BUILD_TYPE='ipv6-apps'
|
|
- BUILD_TYPE='compile-8051-ports' BUILD_CATEGORY='compile' BUILD_ARCH='8051'
|
|
- BUILD_TYPE='compile-arm-apcs-ports' BUILD_CATEGORY='compile' BUILD_ARCH='arm-apcs'
|
|
- BUILD_TYPE='compile-6502-ports' BUILD_CATEGORY='compile' BUILD_ARCH='6502'
|
|
- BUILD_TYPE='compile-arm-ports' BUILD_CATEGORY='compile' BUILD_ARCH='arm-aapcs'
|
|
- BUILD_TYPE='compile-nxp-ports' BUILD_CATEGORY='compile' BUILD_ARCH='jn516x'
|
|
- BUILD_TYPE='slip-radio' MAKE_TARGETS='cooja'
|
|
- BUILD_TYPE='llsec' MAKE_TARGETS='cooja'
|