-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path.travis.yml
127 lines (118 loc) · 4.04 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
115
116
117
118
119
120
121
122
123
124
125
126
127
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/82e5807277e0336f839b
on_success: change
on_failure: always
on_start: never
dist: trusty
sudo: false
language: cpp
os:
- osx
env:
- BUILD_TYPE=Debug
- BUILD_TYPE=Release
matrix:
# allow_failures:
# - os: osx
include:
- os: linux
compiler: gcc
addons: &gcc6 {apt: {packages: [g++-6,libsdl2-dev] , sources: [ubuntu-toolchain-r-test]}}
env: BUILD_TYPE=Coverage COMPILER_VER=6
- os: linux
compiler: gcc
addons: {apt: {packages: [g++-6,libsdl2-dev,doxygen] , sources: [ubuntu-toolchain-r-test]}}
env: BUILD_TYPE=Release COMPILER_VER=6 GEN_DOC=TRUE
- os: linux # Use 3.8 since 3.9 is broken on trusty when using ASAN
compiler: clang
addons: &clang38 {apt: {packages: [clang-3.8,libstdc++-6-dev,libsdl2-dev] , sources: [ubuntu-toolchain-r-test]}}
env: BUILD_TYPE=Debug COMPILER_VER=3.8 USE_ASAN=1
- os: linux
compiler: clang
addons: *clang38
env: BUILD_TYPE=Debug COMPILER_VER=3.8 USE_UBSAN=1
- os: linux
compiler: clang
addons: &clang39 {apt: {packages: [clang-3.9,libstdc++-6-dev] , sources: [ubuntu-toolchain-r-test,llvm-toolchain-trusty-3.9]}}
env: BUILD_TYPE=Debug COMPILER_VER=3.9
- os: linux
compiler: clang
addons: *clang39
env: BUILD_TYPE=Release COMPILER_VER=3.9
- os: linux
compiler: clang
addons: &clang4 {apt: {packages: [clang-4.0,libstdc++-6-dev] , sources: [ubuntu-toolchain-r-test,llvm-toolchain-trusty-4.0]}}
env: BUILD_TYPE=Debug COMPILER_VER=4.0 USE_ASAN=1 LSAN_OPTIONS=verbosity=1:log_threads=1
sudo: required
- os: linux
compiler: clang
addons: *clang4
env: BUILD_TYPE=Release COMPILER_VER=4.0 USE_UBSAN=1
- os: linux
compiler: clang
addons: &clang5 {apt: {packages: [clang-5.0,libstdc++-6-dev] , sources: [ubuntu-toolchain-r-test,llvm-toolchain-trusty-5.0]}}
env: BUILD_TYPE=Debug COMPILER_VER=5.0 USE_ASAN=1 LSAN_OPTIONS=verbosity=1:log_threads=1
sudo: required
- os: linux
compiler: clang
addons: *clang5
env: BUILD_TYPE=Release COMPILER_VER=5.0 USE_UBSAN=1
cache:
directories:
- $HOME/.local
install:
- if [[ "${COMPILER_VER}" != "" ]]; then export CXX=${CXX}-${COMPILER_VER}; fi
- if [[ "${COMPILER_VER}" != "" ]]; then export CC=${CC}-${COMPILER_VER}; fi
- if [[ "${COMPILER_VER}" != "" ]]; then export GCOV=gcov-${COMPILER_VER}; fi
- if [[ "${USE_ASAN}" == "1" ]]; then export CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer"; fi
- if [[ "${USE_UBSAN}" == "1" ]]; then export CXXFLAGS="-fsanitize=undefined -fno-omit-frame-pointer"; fi
- |
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
mkdir -p $HOME/.local
CMAKE_URL="http://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.tar.gz"
if [ ! -e $HOME/.local/bin/cmake ]; then
echo "CMake not found in the cache, get and extract it..."
travis_retry curl -L ${CMAKE_URL} \
| tar -xz -C $HOME/.local --strip-components=1
else
echo "Using cached CMake"
fi
fi
- |
if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
brew update
brew upgrade cmake && \
brew install sdl2
fi
script:
- ${CXX} --version
- echo CXXFLAGS=${CXXFLAGS}
- |
if [[ "$BUILD_TYPE" == "Coverage" ]]; then
ctest -S cmake/CI.CTestScript.cmake --output-on-failure -VV -DCTEST_SITE=Travis -DCTEST_BUILD_NAME="${TRAVIS_OS_NAME}-$BUILD_TYPE"
else
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && \
make VERBOSE=1 && \
ctest -VV .
fi
- |
if [[ "$GEN_DOC" == "TRUE" ]]; then
cmake --build . --target doc
fi
after_success:
- |
if [[ "$BUILD_TYPE" == "Coverage" ]]; then
bash <(curl -s https://codecov.io/bash) -X gcov || echo "Codecov did not collect coverage reports"
fi
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN
keep-history: true
on:
branch: master
condition: $GEN_DOC = TRUE
local-dir: build/html