travis: migrate travis plans to run in a Docker container
Add Dockerfile to create build environment for mraa Add docker-compose.yaml file to easily execute build tasks Add .dockerignore file Modify .travis.yaml file to use docker and docker-compose for building Modify package.json.cmake to run a simple load test for node.js Signed-off-by: Nicolas Oliver <dario.n.oliver@intel.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
committed by
Brendan Le Foll
parent
131ff46a0d
commit
79da382832
93
.travis.yml
93
.travis.yml
@@ -1,49 +1,56 @@
|
||||
language: cpp
|
||||
sudo: required
|
||||
dist: trusty
|
||||
env:
|
||||
- NODE4=true
|
||||
- NODE5=true
|
||||
- JSONPLAT=true NODE4=true
|
||||
- JSONPLAT=true NODE5=true
|
||||
- MOCK=true NODE4=true
|
||||
- MOCK=true NODE5=true
|
||||
- NPM=true NODE4=true
|
||||
- NPM=true NODE5=true
|
||||
|
||||
language: cpp
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
before_install:
|
||||
# Via https://github.com/travis-ci/travis-ci/issues/5326
|
||||
- export PATH="$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")"
|
||||
install:
|
||||
- if [ "${NODE4}" ]; then export CC=gcc-4.8 CXX=g++-4.8; fi
|
||||
|
||||
env:
|
||||
- TARGET=doc
|
||||
- TARGET=python2
|
||||
- TARGET=python3
|
||||
- TARGET=java
|
||||
- TARGET=node4
|
||||
- TARGET=node5
|
||||
- TARGET=python2 JSONPLAT=ON
|
||||
- TARGET=python3 JSONPLAT=ON
|
||||
- TARGET=java JSONPLAT=ON
|
||||
- TARGET=node4 JSONPLAT=ON
|
||||
- TARGET=node5 JSONPLAT=ON
|
||||
- TARGET=python2 BUILDARCH=MOCK
|
||||
- TARGET=python3 BUILDARCH=MOCK
|
||||
- TARGET=java BUILDARCH=MOCK
|
||||
- TARGET=node4 BUILDARCH=MOCK
|
||||
- TARGET=node5 BUILDARCH=MOCK
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- compiler: clang
|
||||
env: TARGET=java
|
||||
- compiler: clang
|
||||
env: TARGET=java JSONPLAT=ON
|
||||
- compiler: clang
|
||||
env: TARGET=java BUILDARCH=MOCK
|
||||
allow_failures:
|
||||
- compiler: gcc
|
||||
env: TARGET=node4 JSONPLAT=ON
|
||||
- compiler: clang
|
||||
env: TARGET=node4 JSONPLAT=ON
|
||||
- compiler: gcc
|
||||
env: TARGET=node5 JSONPLAT=ON
|
||||
- compiler: clang
|
||||
env: TARGET=node5 JSONPLAT=ON
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
before_script:
|
||||
# Turn off JAVA SWIG for clang++, use 4.8 for all g++ builds
|
||||
- if [ "$CC" == "gcc" ]; then export BUILDJAVA=ON; export CC=gcc-4.8; export CXX=g++-4.8; else export BUILDJAVA=OFF; fi
|
||||
- if [ "${JSONPLAT}" ]; then export JSONPLAT=ON; else export JSONPLAT=OFF; fi
|
||||
- if [ "${MOCK}" ]; then export BUILDARCH="MOCK"; else export BUILDARCH=""; fi
|
||||
- if [ "${NODE4}" ]; then nvm install 4.1; fi
|
||||
- if [ "${NODE5}" ]; then nvm install 5; fi
|
||||
- npm install node-gyp && export NODE_GYP="$TRAVIS_BUILD_DIR/node_modules/node-gyp/bin/node-gyp.js"
|
||||
- wget http://iotdk.intel.com/misc/tr/swig-3.0.10.tar.gz && tar xf swig-3.0.10.tar.gz && cd swig-3.0.10 && ./configure --prefix=/home/travis/ && make && make install && cd ..
|
||||
- if [ "$CC" == "gcc" ]; then export CC=gcc-4.8; fi
|
||||
- if [ "$CXX" == "g++" ]; then export CXX=g++-4.8; fi
|
||||
- if [ "$CC" == "clang" ]; then export CC=clang-3.8; fi
|
||||
- if [ "$CXX" == "clang++" ]; then export CXX=clang++-3.8; fi
|
||||
- docker-compose build ${TARGET}
|
||||
|
||||
script:
|
||||
- echo "CC=$CC BUILDJAVA=$BUILDJAVA BUILDARCH=$BUILDARCH JSONPLAT=$JSONPLAT NODE4=$NODE4 NODE5=$NODE5 NODE_ROOT_DIR=$NODE_ROOT_DIR"
|
||||
- if [ -z ${NPM} ]; then mkdir build && cd build && cmake -DBUILDSWIGJAVA="$BUILDJAVA" -DBUILDARCH="$BUILDARCH" -DJSONPLAT=$JSONPLAT -DNODE_ROOT_DIR:PATH="${NVM_BIN}/.." -DCMAKE_INSTALL_PREFIX:PATH=../install -DSWIG_EXECUTABLE=/home/travis/bin/swig -DSWIG_DIR:PATH=/home/travis/share/swig/3.0.10/ .. && make install && make test; else mkdir build && cd build && cmake -DBUILDSWIGJAVA="$BUILDJAVA" -DJSONPLAT=$JSONPLAT -DNODE_ROOT_DIR:PATH="${NVM_BIN}/.." -DCMAKE_INSTALL_PREFIX:PATH=../install -DSWIG_EXECUTABLE=/home/travis/bin/swig -DSWIG_DIR:PATH=/home/travis/share/swig/3.0.10/ .. && make npmpkg && cd .. && ${NODE_GYP} configure && ${NODE_GYP} build; fi
|
||||
# simple test to see if we can load our node module
|
||||
- if [ ${NPM} ]; then cd build/Release/obj.target/ && node -e "var m = require('./mraa.node'); m.getVersion()";fi
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- kalakris-cmake
|
||||
packages:
|
||||
- g++-4.8
|
||||
- cmake
|
||||
- python
|
||||
- python-dev
|
||||
- python3
|
||||
- python3-dev
|
||||
- git
|
||||
- libjson0
|
||||
- libjson0-dev
|
||||
- docker-compose run ${TARGET}
|
||||
|
||||
Reference in New Issue
Block a user