You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.0 KiB
114 lines
4.0 KiB
# Use travis docker infrastructure |
|
sudo: false |
|
language: cpp |
|
|
|
env: |
|
global: |
|
- PREFIX=$HOME/prefix |
|
|
|
compiler: |
|
- gcc |
|
- clang |
|
|
|
# Install a recent gcc and gcov, |
|
# it will not be necessary once travis worker is based on ubuntu > 12.04. |
|
# Install SWIG for bindings generation |
|
# Install valgrind for memcheck tests |
|
# Adding george-edison55-precise-backports ppa for for cmake 3.x. |
|
# Install python3-dev for the client simulator |
|
addons: |
|
apt: |
|
# Travis white list of ppa |
|
# https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json |
|
sources: |
|
- ubuntu-toolchain-r-test |
|
- george-edison55-precise-backports |
|
- llvm-toolchain-precise |
|
# Travis white list of dpkg packages |
|
# https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise |
|
packages: |
|
- swig |
|
- valgrind |
|
- g++-4.8 |
|
- cmake-data |
|
- cmake |
|
- python3-dev |
|
- clang-format-3.8 |
|
|
|
install: |
|
- wget https://codecov.io/bash -O $HOME/codecov; chmod +x $HOME/codecov |
|
# This version of catch is known to work. |
|
- wget --directory-prefix $PREFIX/include |
|
https://raw.github.com/philsquared/Catch/v1.2.1/single_include/catch.hpp |
|
- wget 'https://01.org/sites/default/files/asio-1.10.6.tar.gz' |
|
- tar xf asio-1.10.6.tar.gz -C $PREFIX --strip-components=1 |
|
|
|
before_script: |
|
- coverage=OFF |
|
# Force the manualy installed 4.8 version as it is not the default |
|
# Only enable coverage on gcc as clang segfault on coverage file write |
|
- if [ "$CC" = "gcc" ]; then |
|
export CC=gcc-4.8 CXX=g++-4.8; |
|
coverage=ON; |
|
fi |
|
|
|
# how to build |
|
script: |
|
# Check coding style |
|
- git ls-files | grep -E '\.[ch](pp)?$' | xargs clang-format-3.8 -i && |
|
git diff --exit-code || { git reset --hard; false; } |
|
|
|
- ( mkdir build_debug && cd build_debug && |
|
cmake -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_BUILD_TYPE=Debug -DCOVERAGE=${coverage} .. && |
|
make -j && |
|
CTEST_OUTPUT_ON_FAILURE=1 make ExperimentalTest ExperimentalMemCheck ) |
|
- ( mkdir build && cd build && |
|
cmake -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_BUILD_TYPE=Release .. && |
|
make -j && |
|
CTEST_OUTPUT_ON_FAILURE=1 make test && |
|
make install && |
|
cpack --verbose -G DEB && dpkg --info *.deb) |
|
- ( cd skeleton-subsystem && |
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install . && |
|
make && |
|
CTEST_OUTPUT_ON_FAILURE=1 make ExperimentalTest ExperimentalMemCheck && |
|
make install ) |
|
- ( cd tools/clientSimulator && |
|
echo "TODO - install the generated .deb instead of using ../install." |
|
"This would permit to test the packaging" && |
|
cmake -DCMAKE_INSTALL_PREFIX=../install . && |
|
make && |
|
make install ) |
|
# Keep this last |
|
- ( mkdir build_less_features && cd build_less_features && |
|
rm -rf $PREFIX/asio-1.10.6 && |
|
cmake -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_BUILD_TYPE=Debug |
|
-DNETWORKING=OFF -DPYTHON_BINDINGS=OFF -DC_BINDINGS=OFF .. && |
|
make -j && |
|
CTEST_OUTPUT_ON_FAILURE=1 make test ) |
|
|
|
after_success: |
|
# Push coverage info on codecov.io. |
|
# Ignore generated files, samples and tests |
|
- if [ "${coverage}" = "ON" ]; then |
|
$HOME/codecov |
|
-g "*/build_debug/bindings/python/*" |
|
-g "*/build_debug/CMakeFiles/*" |
|
-g "*/build/*" |
|
-g "*/install/*" |
|
-g "*/skeleton-subsystem/*" |
|
-g "*/tools/clientSimulator/*" |
|
-g "*/test/test-subsystem/*" |
|
-g "*/test/introspection-subsystem/*" |
|
-g "*/test/functional-tests/*" |
|
-g "*/test/tmpfile/*" |
|
-g "*/test/tokenizer/*" |
|
-g "*/bindings/c/Test.cpp" |
|
-g "*/utility/test/*" |
|
-x /usr/bin/gcov-4.8 |
|
-a '\--long-file-names --preserve-paths'; |
|
fi |
|
|
|
notifications: |
|
irc: |
|
- "chat.freenode.net#parameter-framework"
|
|
|