2013-01-10 07:16:20 +00:00
|
|
|
notifications:
|
|
|
|
email: false
|
2012-11-12 22:26:17 +00:00
|
|
|
language: c #NOTE: this will set CC=gcc which might cause trouble
|
|
|
|
before_script:
|
2014-07-05 19:18:00 +00:00
|
|
|
- WGET="travis_retry wget --continue --tries=20 --waitretry=10 --retry-connrefused --no-dns-cache --timeout 300"
|
2014-07-05 19:08:54 +00:00
|
|
|
- sudo apt-get -qq update
|
|
|
|
|
2014-10-14 08:03:28 +00:00
|
|
|
## Support building a binary that is identical to the CI
|
2014-10-14 08:00:28 +00:00
|
|
|
- echo -n "Contiki will be compiled with RELSTR=" ; git --git-dir .git describe --tags --always
|
|
|
|
|
2014-07-05 19:08:54 +00:00
|
|
|
## Install msp430 toolchain
|
|
|
|
- sudo apt-get -qq install lib32z1
|
2014-07-05 19:18:00 +00:00
|
|
|
- $WGET http://adamdunkels.github.io/contiki-fork/mspgcc-4.7.0-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
|
2014-07-05 19:08:54 +00:00
|
|
|
|
|
|
|
## 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
|
2013-08-07 11:55:33 +00:00
|
|
|
|
2014-07-06 01:40:01 +00:00
|
|
|
## Install old APCS ARM toolchain for mc1233x, cc2538 and mbxxx
|
|
|
|
- if [ ${BUILD_ARCH:-0} = arm-apcs ] ; then
|
2014-07-05 19:18:00 +00:00
|
|
|
$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/ &&
|
2014-07-05 19:08:54 +00:00
|
|
|
sudo cp -f -r /tmp/arm-2008q3/* /usr/ &&
|
2014-07-05 19:18:00 +00:00
|
|
|
rm -rf /tmp/arm-2008q3 arm-2008q3*.tar.bz2 &&
|
2014-07-05 19:08:54 +00:00
|
|
|
arm-none-eabi-gcc --version ;
|
|
|
|
fi
|
2013-08-07 11:55:33 +00:00
|
|
|
|
2014-07-06 01:48:56 +00:00
|
|
|
## Install mainline ARM toolchain. gcc-arm-none-eabi is available
|
|
|
|
## in Ubuntu >= 14.04, but this external PPA is needed for 12.04.
|
|
|
|
- if [ ${BUILD_ARCH:-0} = arm ] ; then
|
|
|
|
sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded &&
|
|
|
|
sudo apt-get -qq update &&
|
|
|
|
sudo apt-get -qq install gcc-arm-none-eabi &&
|
|
|
|
arm-none-eabi-gcc --version ;
|
|
|
|
fi
|
|
|
|
|
2014-07-05 19:08:54 +00:00
|
|
|
## Install RL78 GCC toolchain
|
|
|
|
- sudo apt-get install libncurses5:i386 zlib1g:i386
|
2014-07-05 19:18:00 +00:00
|
|
|
- $WGET http://adamdunkels.github.io/contiki-fork/gnurl78-v13.02-elf_1-2_i386.deb &&
|
|
|
|
sudo dpkg -i gnurl78*.deb
|
2014-01-04 23:56:51 +00:00
|
|
|
|
2012-12-16 19:26:29 +00:00
|
|
|
## Install SDCC from a purpose-built bundle
|
2014-07-05 19:08:54 +00:00
|
|
|
- if [ ${BUILD_ARCH:-0} = 8051 ] ; then
|
2014-07-05 19:18:00 +00:00
|
|
|
$WGET https://raw.githubusercontent.com/wiki/g-oikonomou/contiki-sensinode/files/sdcc.tar.gz &&
|
|
|
|
tar xzf sdcc.tar.gz -C /tmp/ &&
|
2014-07-05 19:08:54 +00:00
|
|
|
sudo cp -f -r /tmp/sdcc/* /usr/local/ &&
|
2014-07-05 19:18:00 +00:00
|
|
|
rm -rf /tmp/sdcc sdcc.tar.gz &&
|
2014-07-05 19:08:54 +00:00
|
|
|
sdcc --version &&
|
|
|
|
sudo apt-get -qq install srecord ;
|
|
|
|
fi
|
2014-01-04 23:56:51 +00:00
|
|
|
|
2013-11-20 12:54:14 +00:00
|
|
|
## Clone and build cc65 when testing 6502 ports
|
2014-07-05 19:08:54 +00:00
|
|
|
- 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
|
2012-12-16 19:26:29 +00:00
|
|
|
|
2012-11-13 00:07:04 +00:00
|
|
|
## Compile cooja.jar only when it's going to be needed
|
2014-07-05 19:08:54 +00:00
|
|
|
- if [ ${BUILD_CATEGORY:-sim} = sim ] ; then
|
|
|
|
java -version &&
|
|
|
|
ant -q -f tools/cooja/build.xml jar &&
|
|
|
|
sudo java -Xshare:dump -version ;
|
|
|
|
fi
|
2012-11-12 22:26:17 +00:00
|
|
|
|
|
|
|
script:
|
2013-08-07 11:55:33 +00:00
|
|
|
## regression-tests/Makefile handles most of generic logic
|
2012-12-08 21:59:48 +00:00
|
|
|
- "make -C regression-tests/??-$BUILD_TYPE RUNALL=true summary"
|
2012-11-12 22:26:17 +00:00
|
|
|
|
|
|
|
after_script:
|
2013-05-18 01:07:12 +00:00
|
|
|
## Print cooja test logs
|
2013-08-07 13:50:48 +00:00
|
|
|
- "[ ${BUILD_CATEGORY:-sim} = sim ] && tail regression-tests/??-$BUILD_TYPE/*.testlog"
|
2014-07-06 01:48:56 +00:00
|
|
|
## Print a basic summary
|
2012-12-08 21:59:48 +00:00
|
|
|
- "echo 'Summary:'; cat regression-tests/??-$BUILD_TYPE/summary"
|
2014-10-08 08:59:59 +00:00
|
|
|
- "FAILS=`grep -c ' FAIL ' regression-tests/??-$BUILD_TYPE/summary`"
|
2012-11-12 22:26:17 +00:00
|
|
|
## This will detect whether the build should pass or fail
|
2012-12-17 11:34:58 +00:00
|
|
|
- "test $FAILS -eq 0; exit $?"
|
2012-11-12 22:26:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
## This magically kick-off parallel jobs for each of the for the sets
|
|
|
|
## of environment variable defined below
|
2013-08-07 11:55:33 +00:00
|
|
|
- BUILD_TYPE='compile-base' BUILD_CATEGORY='compile'
|
2013-03-24 23:28:24 +00:00
|
|
|
- BUILD_TYPE='collect'
|
|
|
|
- BUILD_TYPE='collect-lossy'
|
|
|
|
- BUILD_TYPE='rpl'
|
|
|
|
- BUILD_TYPE='rime'
|
|
|
|
- BUILD_TYPE='ipv6'
|
|
|
|
- BUILD_TYPE='hello-world'
|
|
|
|
- BUILD_TYPE='base'
|
2013-05-19 13:59:02 +00:00
|
|
|
# XXX: netperf disabled b/c it's flaky
|
|
|
|
# - BUILD_TYPE='netperf' MAKE_TARGETS='cooja'
|
2013-03-24 23:28:24 +00:00
|
|
|
- BUILD_TYPE='shell'
|
|
|
|
- BUILD_TYPE='elfloader'
|
2013-08-30 09:39:59 +00:00
|
|
|
# Tests under the ipv4 dir are individually disabled. Thus the entire job can be off
|
|
|
|
# - BUILD_TYPE='ipv4'
|
2013-03-24 23:28:24 +00:00
|
|
|
- BUILD_TYPE='ipv6-apps'
|
2013-08-07 11:55:33 +00:00
|
|
|
- BUILD_TYPE='compile-8051-ports' BUILD_CATEGORY='compile' BUILD_ARCH='8051'
|
2014-07-06 01:40:01 +00:00
|
|
|
- BUILD_TYPE='compile-arm-apcs-ports' BUILD_CATEGORY='compile' BUILD_ARCH='arm-apcs'
|
2013-11-20 12:54:14 +00:00
|
|
|
- BUILD_TYPE='compile-6502-ports' BUILD_CATEGORY='compile' BUILD_ARCH='6502'
|
2014-07-06 01:48:56 +00:00
|
|
|
- BUILD_TYPE='compile-arm-ports' BUILD_CATEGORY='compile' BUILD_ARCH='arm'
|
2013-03-12 01:06:58 +00:00
|
|
|
- BUILD_TYPE='slip-radio' MAKE_TARGETS='cooja'
|
2014-06-11 19:06:42 +00:00
|
|
|
- BUILD_TYPE='llsec' MAKE_TARGETS='cooja'
|