summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 3fec8b16f75902fb4eb520b9916c3a51323322b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
language: cpp
compiler:
  - gcc
#  - clang # not supported yet

# Install a recent gcc, gcov and cmake,
# it will not be necessary once travis worker is based on ubuntu > 12.04.
# Install SWIG for bindings generation
before_install:
  - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
  - sudo add-apt-repository --yes ppa:kalakris/cmake # Non official cmake backport
  - sudo apt-get update -qq
  - sudo pip install cpp-coveralls

install:
  - sudo apt-get install --yes swig cmake valgrind g++-4.8
  - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
  - sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.8 100
  - sudo wget --directory-prefix /usr/include/
              https://raw.github.com/philsquared/Catch/master/single_include/catch.hpp

# how to build
script:
  - ( mkdir build_debug && cd build_debug &&
        cmake -DCMAKE_BUILD_TYPE=Debug -DCOVERAGE=ON .. &&
        make -j &&
        CTEST_OUTPUT_ON_FAILURE=1 make ExperimentalTest ExperimentalMemCheck )
  - ( mkdir build && cd build &&
        cmake .. &&
        make -j &&
        sudo make install &&
        sudo ldconfig &&
        CTEST_OUTPUT_ON_FAILURE=1 make test )
  - ( cd skeleton-subsystem &&
        cmake . &&
        make &&
        sudo make install &&
        sudo ldconfig )

after_success:
    # Push coverage info on coveralls.io.
    # Ignore generated files, samples and tests
    - coveralls
          --exclude "build_debug/bindings/python"
          --exclude "build_debug/CMakeFiles"
          --exclude "build"
          --exclude "skeleton-subsystem"
          --exclude "test/test-subsystem"
          --exclude "bindings/c/Test.cpp"
          --exclude "test/tokenizer"
          --gcov-options '\--long-file-names --preserve-paths'

notifications:
  email:
    - david.wagner@intel.com
  irc:
    - "chat.freenode.net#parameter-framework"

env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
   - secure: "Y+iKBg65e4dleuMwxAo1XSl/QkF4AtCe35ltu2DhPbeMJCywBmu0aeDb04oEaZJL+BxP+KMoRqRjeoGI3W/sh0gAq03iQ+P4C8KwRb9fdYPPVwH3NP3fyN27gFBH9GS8uMth68o2KP/oO/aqNwii/KbMZtubp7MhY/wnvz4DLCQ="

addons:
  coverity_scan:
    project:
      name: "dawagner/parameter-framework"
      description: "Plugin-based and rule-based framework for managing parameters"
    notification_email: david.wagner@intel.com
    build_command_prepend: "cmake ."
    build_command: "make -j 12"
    branch_pattern: coverity_scan