mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-11-05 19:07:41 +00:00
9f1e87466f
Up till now we have been installing arm-gcc using apt from the team-gcc-arm-embedded ppa. As discussed in #1453 and implemented in #1504, we have decided to lock travis to use the specific version of the toolchain that is documented in the READMEs of relevant platforms. However, the PPA no longer hosts this version, apt fails to install arm-gcc and as a result the job fails too. This commit changes the travis job to wget an installation tarball for the desired version, instead of trying to install via apt.
143 lines
5.8 KiB
YAML
143 lines
5.8 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 and srecord.
|
|
- if [ ${BUILD_ARCH:-0} = arm-aapcs ] ; then
|
|
sudo apt-get -qq install srecord &&
|
|
$WGET https://launchpad.net/gcc-arm-embedded/5.0/5-2015-q4-major/+download/gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2 &&
|
|
tar xjf gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2 -C /tmp/ &&
|
|
sudo cp -f -r /tmp/gcc-arm-none-eabi-5_2-2015q4/* /usr/local/ &&
|
|
rm -rf /tmp/gcc-arm-none-eabi-* gcc-arm-none-eabi-*-linux.tar.bz2 &&
|
|
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'
|