-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.travis.yml
86 lines (81 loc) · 3.54 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
language: cpp
matrix:
include:
- os: linux
sudo: required
dist: trusty
env: MYCC=gcc-5 MYCXX=g++-5 GCOV=gcov-5 PKG=g++-5
- os: linux
sudo: required
dist: trusty
env: MYCC=gcc-6 MYCXX=g++-6 GCOV=gcov-6 PKG=g++-6
- os: linux
sudo: required
dist: trusty
env: MYCC=gcc-7 MYCXX=g++-7 GCOV=gcov-7 PKG=g++-7
- os: linux
sudo: required
dist: trusty
env: MYCC=clang MYCXX=clang++ GCOV=llvm-cov PKG="g++-5 clang llvm"
- os: linux
sudo: required
dist: trusty
env: MYCC=clang-3.6 MYCXX=clang++-3.6 GCOV=llvm-cov PKG="g++-5 clang-3.6 llvm"
- os: linux
sudo: required
dist: trusty
env: MYCC=clang-4.0 MYCXX=clang++-4.0 GCOV=llvm-cov PKG="g++-5 clang-4.0 llvm"
- os: linux
sudo: required
dist: trusty
env: MYCC=clang-5.0 MYCXX=clang++-5.0 GCOV=llvm-cov PKG="g++-5 clang-5.0 llvm"
- os: linux
sudo: required
dist: trusty
env: MYCC=clang-6.0 MYCXX=clang++-6.0 GCOV=llvm-cov PKG="g++-5 clang-6.0 llvm"
- os: osx
osx_image: xcode6.4
env: MYCC=clang MYCXX=clang++ GCOV=llvm-cov
- os: osx
osx_image: xcode7.3
env: MYCC=clang MYCXX=clang++ GCOV=llvm-cov
- os: osx
osx_image: xcode8.3
env: MYCC=clang MYCXX=clang++ GCOV=llvm-cov
- os: osx
osx_image: xcode9.3
env: MYCC=clang MYCXX=clang++ GCOV=llvm-cov
before_install:
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo add-apt-repository -y ppa:mhier/libboost-latest ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo bash -c "echo deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main >> /etc/apt/sources.list" ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo bash -c "echo deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-5.0 main >> /etc/apt/sources.list" ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo bash -c "echo deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main >> /etc/apt/sources.list" ; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo apt-get update ; fi
install:
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then sudo apt-get install -y --allow-unauthenticated libboost1.68-dev cmake lcov ${PKG} ; fi
script:
############################################################################
# Build main and tests
############################################################################
- mkdir -p build
- cd build
- export CC=${MYCC}
- export CXX=${MYCXX}
- which $CC
- which $CXX
- $CC --version
- $CXX --version
- cmake -DCMAKE_BUILD_TYPE=Debug ..
- make
- make test
after_success:
# Creating report
- cd ${TRAVIS_BUILD_DIR}
- lcov --gcov-tool ${GCOV} --directory . --capture --output-file coverage.info # capture coverage info
- lcov --gcov-tool ${GCOV} --remove coverage.info '/usr/*' --output-file coverage.info # filter out system
- lcov --gcov-tool ${GCOV} --remove coverage.info 'tests/*' --output-file coverage.info # filter out tests
- lcov --gcov-tool ${GCOV} --list coverage.info #debug info
# Uploading report to CodeCov
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" ; fi