blob: db24163bfd45c1088e9ab6eb27a568b08293a8ac [file] [log] [blame]
Kirk Shoop (MS Open Tech)af7a85a2013-12-12 12:47:56 -08001language: cpp
Kirk Shoopb87dcde2016-06-21 16:56:03 -07002
3dist: trusty
4sudo: true
5
Kirk Shoop (MS Open Tech)af7a85a2013-12-12 12:47:56 -08006env:
Kirk Shoop7da48ef2015-05-08 09:55:41 +12007 global:
8 secure: FNZOWYO89qsT9kQKngrYbpnqCTMCSCSQ2rnZ3l17KHctOfS554TTDS+dfxPYz2XHm6azYDVcyBSs2gWJ6TmXZZZqEfr3X4VV4ooAa9PoeIkvVlT654zjZwxeXPYXrHFXZh/ImLUGWjsxRaUHYOv5SzyNGcZv07dtLKVd0ykhbH4=
Kirk Shoopb87dcde2016-06-21 16:56:03 -07009
Valeriy Kopylovf36a3922014-06-24 19:53:22 +040010matrix:
Kirk Shoop001ac1e2015-06-04 07:52:22 -070011 include:
Kirk Shoopb87dcde2016-06-21 16:56:03 -070012
iam4aa52e42018-10-27 13:12:45 -070013 - env: BUILD_TYPE=Debug ASAN=Off RUN_TEST=On EXCEPTIONS=On
Kirk Shoop664d6462015-06-19 08:53:57 -070014 os: osx
Kirk Shoop21552b42016-12-30 18:05:56 -080015 osx_image: xcode8
16
iam4aa52e42018-10-27 13:12:45 -070017 - env: BUILD_TYPE=Debug ASAN=Off LLVM_VERSION=3.8.0 RUN_TEST=On EXCEPTIONS=On
Kirk Shoop21552b42016-12-30 18:05:56 -080018 os: linux
Kirk Shoop664d6462015-06-19 08:53:57 -070019 compiler: clang
Kirk Shoopb87dcde2016-06-21 16:56:03 -070020
iam4aa52e42018-10-27 13:12:45 -070021 - env: BUILD_TYPE=Release ASAN=Off GCC_VERSION=4.9 RUN_TEST=On EXCEPTIONS=On
Kirk Shoop664d6462015-06-19 08:53:57 -070022 os: linux
23 compiler: gcc
24 addons:
25 apt:
26 packages:
27 - g++-4.9
28 sources:
29 - ubuntu-toolchain-r-test
Kirk Shoopb87dcde2016-06-21 16:56:03 -070030
iam4aa52e42018-10-27 13:12:45 -070031 - env: BUILD_TYPE=Release ASAN=Off GCC_VERSION=7 RUN_TEST=On EXCEPTIONS=On
32 os: linux
33 compiler: gcc
34 addons: &gcc7
35 apt:
36 packages:
37 - g++-7
38 sources:
39 - ubuntu-toolchain-r-test
40
Kirk Shoop7930ccc2018-10-28 20:19:03 -070041 - env: BUILD_TYPE=Debug ASAN=Off GCC_VERSION=8 RUN_TEST=On EXCEPTIONS=Off
iam4aa52e42018-10-27 13:12:45 -070042 os: linux
43 compiler: gcc
44 addons: &gcc8
45 apt:
46 packages:
47 - g++-8
48 sources:
49 - ubuntu-toolchain-r-test
50
51 - env: BUILD_TYPE=Release ASAN=Off GCC_VERSION=8 RUN_TEST=On EXCEPTIONS=On
52 os: linux
53 compiler: gcc
54 addons: &gcc8
55 apt:
56 packages:
57 - g++-8
58 sources:
59 - ubuntu-toolchain-r-test
60
61 - env: BUILD_TYPE=Debug ASAN=Off LLVM_VERSION=3.8.0 RUN_TEST=Off EXCEPTIONS=On PROJECT=doc PUBLISH_DOCS=On DOXYGEN_VERSION=1.8.11
Kirk Shoop664d6462015-06-19 08:53:57 -070062 os: linux
Kirk Shoop21552b42016-12-30 18:05:56 -080063 compiler: clang
Kirk Shoop664d6462015-06-19 08:53:57 -070064 addons:
65 apt:
66 packages:
Kirk Shoop664d6462015-06-19 08:53:57 -070067 - graphviz
68 sources:
69 - ubuntu-toolchain-r-test
Kirk Shoopb87dcde2016-06-21 16:56:03 -070070
71cache:
72 directories:
Kirk Shoop21552b42016-12-30 18:05:56 -080073 - ${TRAVIS_BUILD_DIR}/deps/llvm-3.8.0
74 - ${TRAVIS_BUILD_DIR}/deps/cmake-3.5.2
75 - ${TRAVIS_BUILD_DIR}/deps/doxygen-1.8.11
76
77install:
Kirk Shoopb87dcde2016-06-21 16:56:03 -070078 ############################################################################
Kirk Shoop21552b42016-12-30 18:05:56 -080079 # All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/
80 ############################################################################
81 - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
82 - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
83
84 ############################################################################
85 # Install Clang, libc++ and libc++abi
Kirk Shoopb87dcde2016-06-21 16:56:03 -070086 ############################################################################
87 - |
Kirk Shoop21552b42016-12-30 18:05:56 -080088 if [[ "${LLVM_VERSION}" != "" ]]; then
89 LLVM_DIR=${DEPS_DIR}/llvm-${LLVM_VERSION}
90 if [[ -z "$(ls -A ${LLVM_DIR})" ]]; then
91 LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
92 LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
93 LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
94 CLANG_URL="http://llvm.org/releases/${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-14.04.tar.xz"
95 mkdir -p ${LLVM_DIR} ${LLVM_DIR}/build ${LLVM_DIR}/projects/libcxx ${LLVM_DIR}/projects/libcxxabi ${LLVM_DIR}/clang
96 travis_retry wget --quiet -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}
97 travis_retry wget --quiet -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/projects/libcxx
98 travis_retry wget --quiet -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/projects/libcxxabi
99 travis_retry wget --quiet -O - ${CLANG_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/clang
100 (cd ${LLVM_DIR}/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_DIR}/install -DCMAKE_CXX_COMPILER=clang++)
101 (cd ${LLVM_DIR}/build/projects/libcxx && make install -j2)
102 (cd ${LLVM_DIR}/build/projects/libcxxabi && make install -j2)
103 fi
104 export CXXFLAGS="-nostdinc++ -isystem ${LLVM_DIR}/install/include/c++/v1"
105 export LDFLAGS="-L ${LLVM_DIR}/install/lib -l c++ -l c++abi"
106 export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${LLVM_DIR}/install/lib"
107 export PATH="${LLVM_DIR}/clang/bin:${PATH}"
108 $LLVM_DIR/clang/bin/clang++ --version
109 fi
110
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700111 ############################################################################
112 # Use gcc
113 ############################################################################
114 - |
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700115 if [ -n "$GCC_VERSION" ]; then
Kirk Shoop21552b42016-12-30 18:05:56 -0800116 export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}";
117 g++-${GCC_VERSION} --version
118 fi
119
120 - $CXX --version
121
122 ############################################################################
123 # Install a recent Doxygen
124 ############################################################################
125 - |
126 if [ -n "$DOXYGEN_VERSION" ]; then
127 DOXYGEN_DIR=${DEPS_DIR}/doxygen-${DOXYGEN_VERSION}
128 if [[ -z "$(ls -A ${DOXYGEN_DIR})" ]]; then
Björn Esser22542152019-02-11 19:44:05 +0100129 DOXYGEN_URL="https://downloads.sourceforge.net/doxygen/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz"
Kirk Shoop21552b42016-12-30 18:05:56 -0800130 mkdir -p ${DOXYGEN_DIR} && travis_retry wget --quiet -O - ${DOXYGEN_URL} | tar --strip-components=1 -xz -C ${DOXYGEN_DIR}
131 fi
132 export PATH=${DOXYGEN_DIR}/bin:${PATH}
133 doxygen --version
134 fi
135
136 ############################################################################
137 # Install a recent CMake (unless already installed on OS X)
138 ############################################################################
139 - |
140 if [ -z "$CMAKE_VERSION" ]; then
141 CMAKE_VERSION=3.5.2;
142 fi;
143 if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
144 CMAKE_DIR=${DEPS_DIR}/cmake-${CMAKE_VERSION}
145 if [[ -z "$(ls -A ${CMAKE_DIR})" ]]; then
146 CMAKE_URL="http://www.cmake.org/files/v3.5/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz"
147 mkdir -p ${CMAKE_DIR} && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${CMAKE_DIR}
148 fi
149 export PATH=${CMAKE_DIR}/bin:${PATH}
150 else
151 if ! brew ls --version cmake &>/dev/null; then brew install cmake; fi
152 fi
153 cmake --version
154
155before_script:
156 - |
157 if [ -z "$BUILD_TYPE" ]; then
158 BUILD_TYPE=Release;
159 fi;
iam4aa52e42018-10-27 13:12:45 -0700160 if [ -z "$EXCEPTIONS" ]; then
161 EXCEPTIONS=On;
162 fi;
Kirk Shoop21552b42016-12-30 18:05:56 -0800163 if [[ "${ASAN}" == "On" ]]; then
164 export CXXFLAGS="${CXXFLAGS} -fsanitize=address,undefined,integer -fno-omit-frame-pointer -fno-sanitize=unsigned-integer-overflow";
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700165 fi;
166 if [ -n "$LLVM_VERSION" ]; then
Kirk Shoop21552b42016-12-30 18:05:56 -0800167 export CXXFLAGS="${CXXFLAGS} -D__extern_always_inline=inline";
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700168 fi;
Kirk Shoop21552b42016-12-30 18:05:56 -0800169
170 ############################################################################
171 # generate build
172 ############################################################################
173 - cd ${TRAVIS_BUILD_DIR}
iam4aa52e42018-10-27 13:12:45 -0700174 - cmake . -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DRX_USE_EXCEPTIONS=${EXCEPTIONS}
Kirk Shoop21552b42016-12-30 18:05:56 -0800175
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700176script:
Kirk Shoop21552b42016-12-30 18:05:56 -0800177 ############################################################################
178 # Run build
179 ############################################################################
180 - make VERBOSE=1 $PROJECT
181
182 ############################################################################
183 # Test build
184 ############################################################################
185 - cd build/test/
186 - if [[ "${RUN_TEST}" == "On" ]]; then ctest -V; fi
187 - cd ../../
188
Valery Kopylovdf588292015-05-06 16:44:43 +0300189after_success:
Kirk Shoop21552b42016-12-30 18:05:56 -0800190 ############################################################################
191 # Publish documentation
192 ############################################################################
Kirk Shoop554e5be2015-12-17 00:20:00 -0800193 - |
Kirk Shoop21552b42016-12-30 18:05:56 -0800194 if [[ "${PUBLISH_DOCS}" == "On" ]]; then
Kirk Shoopb87dcde2016-06-21 16:56:03 -0700195 sh projects/scripts/travis-doxygen.sh;
196 fi;
Kirk Shoop21552b42016-12-30 18:05:56 -0800197
Kirk Shoopc81d5f52014-06-13 14:26:06 -0700198branches:
199 only:
Kirk Shoop7da48ef2015-05-08 09:55:41 +1200200 - master
Kirk Shoop21552b42016-12-30 18:05:56 -0800201
Kirk Shoopc81d5f52014-06-13 14:26:06 -0700202notifications:
Kirk Shoopc81d5f52014-06-13 14:26:06 -0700203 email:
Kirk Shoop41b0d232015-02-24 22:34:53 -0800204 recipients:
Kirk Shoop554e5be2015-12-17 00:20:00 -0800205 - kirk.shoop@microsoft.com
Kirk Shoop83f6fdf2014-06-19 08:25:10 -0700206 on_success: always
Kirk Shoopc81d5f52014-06-13 14:26:06 -0700207 on_failure: always
Matthew Podwysocki9b58dff2015-05-16 19:09:33 +0200208 slack: reactivex:eq4FFCchRIzufO2ZmpuuiJ9E
Kirk Shoop554e5be2015-12-17 00:20:00 -0800209 webhooks:
210 urls:
211 - https://webhooks.gitter.im/e/fcf05f21f5d4102e12e7
Kirk Shoop664d6462015-06-19 08:53:57 -0700212deploy:
Kirk Shoop638c3342015-07-23 18:56:01 -0700213 - provider: releases
214 api_key:
215 secure: sMyo0U4WxZ0kOlQ9SzKfeuU2/5y0Ngt8A0B0N6bb0TcGIyLhQv2q216Q+T0rkQKc04WnLY0Vr1/q9LonAA46nGq7zAiWcC3TY0zVUKRmKWrotQb/QqW1tvVEARKwG7CO+HCcGT3XCeM69XA/L7WiXRskTxS1+5Vy46/tVZBKofg=
216 file: ''
217 on:
218 tags: true
219 repo: Reactive-Extensions/RxCpp