diff --git a/.travis.yml b/.travis.yml index 0876c2d3..858141d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,8 @@ sudo: false -language: c++ -compiler: - - gcc - - clang -before_install: - - pip install --user cpp-coveralls - - mkdir -p /tmp/cmake - - curl https://cmake.org/files/v3.4/cmake-3.4.0-Linux-x86_64.tar.gz | tar xz -C /tmp/cmake --strip 1 - - export PATH=/tmp/cmake/bin:$PATH - - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16" - - sleep 3 - - export DISPLAY=:1.0 - - mkdir -p /tmp/arduino - - curl http://downloads.arduino.cc/arduino-1.6.5-linux64.tar.xz | tar xJ -C /tmp/arduino --strip 1 - - export PATH=$PATH:/tmp/arduino/ - - ln -s $PWD /tmp/arduino/libraries/ArduinoJson -script: - - cmake -DCOVERAGE=true . && make && make test - - arduino --verify --board arduino:avr:uno $PWD/examples/JsonParserExample/JsonParserExample.ino - - arduino --verify --board arduino:avr:uno $PWD/examples/JsonGeneratorExample/JsonGeneratorExample.ino -after_success: - - if [ "$CC" = "gcc" ]; then coveralls --exclude third-party --gcov-options '\-lp'; fi +language: cpp +env: + - COMPILER=gcc + - COMPILER=clang + - COMPILER=arduino VERSION=1.5.8 BOARD=arduino:avr:uno + - COMPILER=arduino VERSION=1.6.7 BOARD=arduino:avr:uno +script: scripts/travis/$COMPILER.sh diff --git a/scripts/build-old-arduino-package.sh b/scripts/build-old-arduino-package.sh old mode 100644 new mode 100755 diff --git a/scripts/travis/arduino.sh b/scripts/travis/arduino.sh new file mode 100755 index 00000000..085aa9e2 --- /dev/null +++ b/scripts/travis/arduino.sh @@ -0,0 +1,15 @@ +#!/bin/sh -eux + +/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16 +sleep 3 +export DISPLAY=:1.0 + +mkdir -p /tmp/arduino +curl -sS http://downloads.arduino.cc/arduino-$VERSION-linux64.tar.xz | tar xJ -C /tmp/arduino --strip 1 || +curl -sS http://downloads.arduino.cc/arduino-$VERSION-linux64.tgz | tar xz -C /tmp/arduino --strip 1 +export PATH=$PATH:/tmp/arduino/ + +ln -s $PWD /tmp/arduino/libraries/ArduinoJson + +arduino --verify --board $BOARD $PWD/examples/JsonParserExample/JsonParserExample.ino +arduino --verify --board $BOARD $PWD/examples/JsonGeneratorExample/JsonGeneratorExample.ino diff --git a/scripts/travis/clang.sh b/scripts/travis/clang.sh new file mode 100755 index 00000000..6dd742fc --- /dev/null +++ b/scripts/travis/clang.sh @@ -0,0 +1,10 @@ +#!/bin/sh -eux + +export CC=clang +export CXX=clang++ + +curl -sS https://cmake.org/files/v3.4/cmake-3.4.0-Linux-x86_64.tar.gz | tar xz -C /tmp --strip 1 + +/tmp/bin/cmake . +make +make test diff --git a/scripts/travis/gcc.sh b/scripts/travis/gcc.sh new file mode 100755 index 00000000..06cf603c --- /dev/null +++ b/scripts/travis/gcc.sh @@ -0,0 +1,13 @@ +#!/bin/sh -eux + +export CC=gcc +export CXX=g++ + +curl https://cmake.org/files/v3.4/cmake-3.4.0-Linux-x86_64.tar.gz | tar xz -C /tmp --strip 1 + +/tmp/bin/cmake -DCOVERAGE=true . +make +make test + +pip install --user cpp-coveralls +coveralls --exclude third-party --gcov-options '\-lp'; fi