forked from LearningByExample/ModernCppCI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
87 lines (72 loc) · 2.58 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
language: cpp
sudo: false
notifications:
email: false
# Use Linux unless specified otherwise
os: linux
dist: xenial
matrix:
include:
##########################################################################
# Clang on OSX
##########################################################################
- env: COMPILER=clang++ BUILD_TYPE=Debug CODE_COVERAGE=FALSE
os: osx
compiler: clang
- env: COMPILER=clang++ BUILD_TYPE=Release CODE_COVERAGE=FALSE
os: osx
compiler: clang
##########################################################################
# Clang on Linux
##########################################################################
# Clang 7.0
- env: COMPILER=clang++-7 BUILD_TYPE=Debug CODE_COVERAGE=FALSE
addons: &clang70
apt:
packages:
- clang-7
- g++-7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- env: COMPILER=clang++-7 BUILD_TYPE=Release CODE_COVERAGE=FALSE
addons: *clang70
##########################################################################
# GCC on Linux
##########################################################################
- env: COMPILER=g++-7 BUILD_TYPE=Debug CODE_COVERAGE=TRUE
addons: &gcc7
apt:
packages:
- lcov
- g++-7
sources:
- ubuntu-toolchain-r-test
- env: COMPILER=g++-7 BUILD_TYPE=Release CODE_COVERAGE=FALSE
addons: *gcc7
install:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz"
mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
which cmake || brew install cmake
fi
before_script:
- export CXX=${COMPILER}
- cd ${TRAVIS_BUILD_DIR}
- cmake -H. -BBuild -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -Wdev -DCODE_COVERAGE=${CODE_COVERAGE}
- cd Build
script:
- make -j 2
- ctest -V -j 2
after_success:
# Create lcov report
- lcov --capture --directory . --output-file coverage.info
- lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files
- lcov --list coverage.info # debug info
# Uploading report to CodeCov
- bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"