Codebase list nfstrace / debian/0.4.2-1 .travis.yml
debian/0.4.2-1

Tree @debian/0.4.2-1 (Download .tar.gz)

.travis.yml @debian/0.4.2-1raw · history · blame

sudo: false
language: cpp

addons:
  apt:
    packages:
      - ccache 
cache:
  apt: true
  directories:
    - ccache
    - $HOME/.ccache
    - $DEPS_DIR

env:
  global:
    - DEPS_DIR="$HOME/install"
    - CMAKE_DIR="$DEPS_DIR/cmake-3.3.2-Linux-x86_64" 
    - CMAKE="$CMAKE_DIR/bin/cmake" 
    - JSON_DIR="$DEPS_DIR/json-c-0.11"
    - JSON_LIB="$JSON_DIR/install" 
    - JSON_INCLUDE_DIR="$JSON_DIR"
    - LCOV_DIR="$DEPS_DIR/lcov-1.11"
    - LCOV="$LCOV_DIR/bin/lcov"
    - GMOCK_DIR="$DEPS_DIR/gmock-1.7.0" 

matrix:
  include:
    - os: linux
      compiler: gcc-4.9 
      addons:
        apt:
          sources: ['ubuntu-toolchain-r-test']
          packages: ['texlive-latex-base','gcc-4.9','g++-4.9','libpcap-dev','valgrind']
      env: 
        # You can not set CXX directly as Travis CI will overwrite it. You need an intermediate variable like COMPILER
        - COMPILER=g++-4.9 CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage -fPIC" C_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage" gcov="/usr/bin/gcov-4.9"
      fast_finish: true

before_install:
  - uname -a
  - pwd
  - export
  - export PATH="$PATH:$JSON_LIB"

install:
  - pip install --user --upgrade cpp-coveralls
  - gem install coveralls-lcov
  - |
    if [ ! -f "$CMAKE" ]; then
      wget -O - --no-check-certificate https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz | tar xz && cp -r cmake-3.3.2-Linux-x86_64 $DEPS_DIR
    else 
      echo "Using cached cmake"
    fi
  - |
    if [ ! -f "$GMOCK_DIR/CMakeLists.txt" ]; then
      wget -q https://googlemock.googlecode.com/files/gmock-1.7.0.zip && unzip gmock-1.7.0.zip -d $DEPS_DIR
    else 
      echo "Using cached gmock" 
    fi

  # installing libjson-c from source because #'ondrej/php5-5.6' is disallowed source in travis-ci
  - |
    if [ ! -f "$JSON_DIR/configure" ]; then
      wget -O - --no-check-certificate https://s3.amazonaws.com/json-c_releases/releases/json-c-0.11.tar.gz | tar xz && cp -r json-c-0.11 $DEPS_DIR && (cd $JSON_DIR && mkdir -p $JSON_LIB && sh ./autogen.sh && ./configure --prefix=$JSON_LIB && make install)
    else
      echo "Using cached json"
    fi

  - |
    if [ ! -f "$LCOV" ]; then
      wget -O - --no-check-certificate http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.11.orig.tar.gz | tar xz && cp -r lcov-1.11 $DEPS_DIR
      make -C $LCOV_DIR
    else 
      echo "Using cached lcov"
    fi
before_script:
  - $CMAKE --version
  - gcov --version 
  - $LCOV --gcov-tool "/usr/bin/gcov-4.9" --directory . --zerocounters
script:
  - mkdir debug && cd debug
  - $CMAKE -DCMAKE_CXX_COMPILER="$COMPILER" -DCMAKE_BUILD_TYPE=DEBUG -DGMOCK_SOURCE_DIR=$GMOCK_DIR -D"CMAKE_CXX_FLAGS=$CXX_FLAGS" -DCMAKE_C_FLAGS="$C_FLAGS" -DINCLUDE_COVERAGE_INFO="true" ../
  - make
  - make test
  - make documentation-pdflatex
  - ccache -s

after_success: 
  - $LCOV --gcov-tool "/usr/bin/gcov-4.9" --compat-libtool --directory . --capture --output-file coverage.info # capture coverage info
  - $LCOV --gcov-tool "/usr/bin/gcov-4.9" --remove coverage.info 'tests/*' '/usr/*' '*gmock*' --output-file coverage.info # filter out system and test code
  - coveralls-lcov coverage.info
  # - coveralls --gcov "$(which "${GCOV}")" --encoding iso-8859-1 || echo 'coveralls upload failed.'