-
Notifications
You must be signed in to change notification settings - Fork 8
/
.travis.yml
114 lines (103 loc) · 2.77 KB
/
.travis.yml
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
sudo: false
dist: trusty
language: cpp
addons:
apt:
packages:
matrix:
include:
# XCode 9.3
- os: osx
osx_image: xcode9.3
env:
- MATRIX_EVAL="CC=clang && CXX=clang++"
- CMAKE_OPTNS="-D CMAKE_BUILD_TYPE=Debug"
# GCC 5
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- libboost-dev
- lcov
env:
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
- CMAKE_OPTNS="-D Template_ENABLE_COVERAGE:BOOL=TRUE
-D CMAKE_BUILD_TYPE=Debug"
# GCC 6
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libboost-dev
- lcov
env:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
- CMAKE_OPTNS="-D Template_ENABLE_COVERAGE:BOOL=TRUE
-D CMAKE_BUILD_TYPE=Debug"
# GCC 7
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- libboost-dev
- lcov
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
- CMAKE_OPTNS="-D Template_ENABLE_COVERAGE:BOOL=TRUE
-D CMAKE_BUILD_TYPE=Debug"
# Clang 4.0
- os: linux
sudo: required
addons:
apt:
sources:
- llvm-toolchain-trusty-4.0
packages:
- clang-4.0
- libboost-dev
env:
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
- CMAKE_OPTNS="-D Template_USE_CLANG_TIDY:BOOL=TRUE
-D Template_MEMCHECK:BOOL=TRUE
-D CMAKE_BUILD_TYPE=Debug"
# Clang 5.0
- os: linux
sudo: required
addons:
apt:
sources:
- llvm-toolchain-trusty-5.0
packages:
- clang-5.0
- libboost-dev
env:
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
- CMAKE_OPTNS="-D Template_USE_CLANG_TIDY:BOOL=TRUE
-D Template_MEMCHECK:BOOL=TRUE
-D CMAKE_BUILD_TYPE=Debug"
before_install:
- eval "${MATRIX_EVAL}"
script:
- cmake $CMAKE_OPTNS .
- cmake --build . -- -j2
- ctest -j2 --output-on-failure
after_success:
# Creating report
- cd ${TRAVIS_BUILD_DIR}
# capture coverage info
- lcov --directory . --capture --output-file coverage.info
# filter out system and catch headers
- lcov --remove coverage.info '/usr/*' 'tests/catch.hpp' --output-file coverage.info
# debug info
- lcov --list coverage.info
# Uploading report to CodeCov
- bash <(curl -s https://codecov.io/bash) -X gcov || echo "Codecov did not collect coverage reports"