forked from thrill/thrill
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
142 lines (123 loc) · 4.22 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Travis-CI build script for Thrill
language: cpp
sudo: false
dist: trusty
matrix:
include:
# gcc 4.9 with AddressSanitizer, Debug
- env: CMAKE_CC="gcc-4.9" CMAKE_CXX="g++-4.9" BUILD_TYPE="Debug" COMPILER_FLAGS="-fsanitize=address" CMAKE_ARGS="-DTHRILL_TRY_COMPILE_HEADERS=OFF"
os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
- libssl-dev
# gcc 5.x, Debug & Release, with OpenMPI
- env: CMAKE_CC="gcc-5" CMAKE_CXX="g++-5" BUILD_TYPE="Debug" COMPILER_FLAGS="-O1"
os: linux
addons: &gcc5
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- mpich
- libmpich-dev
- libbz2-dev
- libssl-dev
- env: CMAKE_CC="gcc-5" CMAKE_CXX="g++-5" BUILD_TYPE="Release" COMPILER_FLAGS=""
os: linux
addons: *gcc5
# gcc 6.x, Debug with -O1
- env: CMAKE_CC="gcc-6" CMAKE_CXX="g++-6" BUILD_TYPE="Debug" COMPILER_FLAGS="-O1"
os: linux
addons: &gcc6
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
- libbz2-dev
- libssl-dev
# gcc 7.x, Debug with -O1 and -D_GLIBCXX_DEBUG
- env: CMAKE_CC="gcc-7" CMAKE_CXX="g++-7" BUILD_TYPE="Debug" COMPILER_FLAGS="-O1 -D_GLIBCXX_DEBUG"
os: linux
addons: &gcc7
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- libbz2-dev
- libssl-dev
# clang 3.7 without AddressSanitizer, Debug & Release
- env: CMAKE_CC="clang-3.7" CMAKE_CXX="clang++-3.7" BUILD_TYPE="Debug" COMPILER_FLAGS="" CMAKE_ARGS="-DTHRILL_FULL_BUILD=ON" BUILD_DOXYGEN="1"
os: linux
addons: &clang37
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- george-edison55-precise-backports # doxygen 1.8.3
packages:
- clang-3.7
- libbz2-dev
- libssl-dev
- doxygen
- graphviz
# clang 3.7 without AddressSanitizer (there are some system-dependent LeakSanitizer errors)
- env: CMAKE_CC="clang-3.7" CMAKE_CXX="clang++-3.7" BUILD_TYPE="Release" COMPILER_FLAGS="" CMAKE_ARGS="-DTHRILL_FULL_BUILD=ON"
os: linux
addons: *clang37
# clang 3.7 on MacOSX without AddressSanitizer, Debug & Release, not FULL_BUILD
- env: CMAKE_CC="clang" CMAKE_CXX="clang++" BUILD_TYPE="Debug" COMPILER_FLAGS=""
os: osx
- env: CMAKE_CC="clang" CMAKE_CXX="clang++" BUILD_TYPE="Release" COMPILER_FLAGS=""
os: osx
env:
global:
# LeakSanitizer suppressions
- LSAN_OPTIONS="suppressions=$PWD/misc/leak_sanitizer.supp"
# die on ThreadSanitizer errors
- TSAN_OPTIONS="halt_on_error=1"
before_script:
# print out some version numbers
- $CMAKE_CXX --version
- cmake --version
- gzip --version || true
- xz --version || true
- ulimit -a || true
# enable -Werror on thrill/thrill master branch
- if [ "$TRAVIS_BRANCH" == "master" ]; then
COMPILER_FLAGS="$COMPILER_FLAGS -Werror";
fi
# configure
- mkdir build; cd build
- cmake
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
-DCMAKE_C_COMPILER="$CMAKE_CC" -DCMAKE_CXX_COMPILER="$CMAKE_CXX"
-DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS"
-DTHRILL_BUILD_TESTS=ON
-DTHRILL_BUILD_EXAMPLES=ON
-DTHRILL_BUILD_EXAMPLES_MORE=ON
-DTHRILL_TRY_COMPILE_HEADERS=ON
-DTHRILL_ON_TRAVIS=ON
$CMAKE_ARGS ..
script:
# build huge objects with only one thread
- make -C examples/suffix_sorting dc3.o
- make -C examples/suffix_sorting dc7.o
- make -C examples/suffix_sorting prefix_quadrupling.o
- make -C examples/k-means k-means_run.cpp.o
- ctest
-DCTEST_SITE:STRING="travis-$TRAVIS_REPO_SLUG"
-DCTEST_BUILD_NAME:STRING="$TRAVIS_OS_NAME-$CMAKE_CC-$BUILD_TYPE"
-S ../misc/cmake/script.ctest -VV
# Generate and deploy documentation
after_success:
- cd $TRAVIS_BUILD_DIR
- if [ -n "$BUILD_DOXYGEN" -a "$TRAVIS_REPO_SLUG" == "thrill/thrill" -a "$TRAVIS_BRANCH" == "master" ]; then
./misc/doxygen/mk-doxygen-travis.sh;
fi