Kirk Shoop (MS Open Tech) | af7a85a | 2013-12-12 12:47:56 -0800 | [diff] [blame] | 1 | language: cpp |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 2 | |
| 3 | dist: trusty |
| 4 | sudo: true |
| 5 | |
Kirk Shoop (MS Open Tech) | af7a85a | 2013-12-12 12:47:56 -0800 | [diff] [blame] | 6 | env: |
Kirk Shoop | 7da48ef | 2015-05-08 09:55:41 +1200 | [diff] [blame] | 7 | global: |
| 8 | secure: FNZOWYO89qsT9kQKngrYbpnqCTMCSCSQ2rnZ3l17KHctOfS554TTDS+dfxPYz2XHm6azYDVcyBSs2gWJ6TmXZZZqEfr3X4VV4ooAa9PoeIkvVlT654zjZwxeXPYXrHFXZh/ImLUGWjsxRaUHYOv5SzyNGcZv07dtLKVd0ykhbH4= |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 9 | |
Valeriy Kopylov | f36a392 | 2014-06-24 19:53:22 +0400 | [diff] [blame] | 10 | matrix: |
Kirk Shoop | 001ac1e | 2015-06-04 07:52:22 -0700 | [diff] [blame] | 11 | include: |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 12 | |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 13 | - env: BUILD_TYPE=Debug ASAN=Off RUN_TEST=On EXCEPTIONS=On |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 14 | os: osx |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 15 | osx_image: xcode8 |
| 16 | |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 17 | - env: BUILD_TYPE=Debug ASAN=Off LLVM_VERSION=3.8.0 RUN_TEST=On EXCEPTIONS=On |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 18 | os: linux |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 19 | compiler: clang |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 20 | |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 21 | - env: BUILD_TYPE=Release ASAN=Off GCC_VERSION=4.9 RUN_TEST=On EXCEPTIONS=On |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 22 | os: linux |
| 23 | compiler: gcc |
| 24 | addons: |
| 25 | apt: |
| 26 | packages: |
| 27 | - g++-4.9 |
| 28 | sources: |
| 29 | - ubuntu-toolchain-r-test |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 30 | |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 31 | - 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 Shoop | 7930ccc | 2018-10-28 20:19:03 -0700 | [diff] [blame] | 41 | - env: BUILD_TYPE=Debug ASAN=Off GCC_VERSION=8 RUN_TEST=On EXCEPTIONS=Off |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 42 | 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 Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 62 | os: linux |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 63 | compiler: clang |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 64 | addons: |
| 65 | apt: |
| 66 | packages: |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 67 | - graphviz |
| 68 | sources: |
| 69 | - ubuntu-toolchain-r-test |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 70 | |
| 71 | cache: |
| 72 | directories: |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 73 | - ${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 | |
| 77 | install: |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 78 | ############################################################################ |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 79 | # 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 Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 86 | ############################################################################ |
| 87 | - | |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 88 | 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 Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 111 | ############################################################################ |
| 112 | # Use gcc |
| 113 | ############################################################################ |
| 114 | - | |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 115 | if [ -n "$GCC_VERSION" ]; then |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 116 | 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 Esser | 2254215 | 2019-02-11 19:44:05 +0100 | [diff] [blame] | 129 | DOXYGEN_URL="https://downloads.sourceforge.net/doxygen/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 130 | 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 | |
| 155 | before_script: |
| 156 | - | |
| 157 | if [ -z "$BUILD_TYPE" ]; then |
| 158 | BUILD_TYPE=Release; |
| 159 | fi; |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 160 | if [ -z "$EXCEPTIONS" ]; then |
| 161 | EXCEPTIONS=On; |
| 162 | fi; |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 163 | if [[ "${ASAN}" == "On" ]]; then |
| 164 | export CXXFLAGS="${CXXFLAGS} -fsanitize=address,undefined,integer -fno-omit-frame-pointer -fno-sanitize=unsigned-integer-overflow"; |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 165 | fi; |
| 166 | if [ -n "$LLVM_VERSION" ]; then |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 167 | export CXXFLAGS="${CXXFLAGS} -D__extern_always_inline=inline"; |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 168 | fi; |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 169 | |
| 170 | ############################################################################ |
| 171 | # generate build |
| 172 | ############################################################################ |
| 173 | - cd ${TRAVIS_BUILD_DIR} |
iam | 4aa52e4 | 2018-10-27 13:12:45 -0700 | [diff] [blame] | 174 | - cmake . -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DRX_USE_EXCEPTIONS=${EXCEPTIONS} |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 175 | |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 176 | script: |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 177 | ############################################################################ |
| 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 Kopylov | df58829 | 2015-05-06 16:44:43 +0300 | [diff] [blame] | 189 | after_success: |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 190 | ############################################################################ |
| 191 | # Publish documentation |
| 192 | ############################################################################ |
Kirk Shoop | 554e5be | 2015-12-17 00:20:00 -0800 | [diff] [blame] | 193 | - | |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 194 | if [[ "${PUBLISH_DOCS}" == "On" ]]; then |
Kirk Shoop | b87dcde | 2016-06-21 16:56:03 -0700 | [diff] [blame] | 195 | sh projects/scripts/travis-doxygen.sh; |
| 196 | fi; |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 197 | |
Kirk Shoop | c81d5f5 | 2014-06-13 14:26:06 -0700 | [diff] [blame] | 198 | branches: |
| 199 | only: |
Kirk Shoop | 7da48ef | 2015-05-08 09:55:41 +1200 | [diff] [blame] | 200 | - master |
Kirk Shoop | 21552b4 | 2016-12-30 18:05:56 -0800 | [diff] [blame] | 201 | |
Kirk Shoop | c81d5f5 | 2014-06-13 14:26:06 -0700 | [diff] [blame] | 202 | notifications: |
Kirk Shoop | c81d5f5 | 2014-06-13 14:26:06 -0700 | [diff] [blame] | 203 | email: |
Kirk Shoop | 41b0d23 | 2015-02-24 22:34:53 -0800 | [diff] [blame] | 204 | recipients: |
Kirk Shoop | 554e5be | 2015-12-17 00:20:00 -0800 | [diff] [blame] | 205 | - kirk.shoop@microsoft.com |
Kirk Shoop | 83f6fdf | 2014-06-19 08:25:10 -0700 | [diff] [blame] | 206 | on_success: always |
Kirk Shoop | c81d5f5 | 2014-06-13 14:26:06 -0700 | [diff] [blame] | 207 | on_failure: always |
Matthew Podwysocki | 9b58dff | 2015-05-16 19:09:33 +0200 | [diff] [blame] | 208 | slack: reactivex:eq4FFCchRIzufO2ZmpuuiJ9E |
Kirk Shoop | 554e5be | 2015-12-17 00:20:00 -0800 | [diff] [blame] | 209 | webhooks: |
| 210 | urls: |
| 211 | - https://webhooks.gitter.im/e/fcf05f21f5d4102e12e7 |
Kirk Shoop | 664d646 | 2015-06-19 08:53:57 -0700 | [diff] [blame] | 212 | deploy: |
Kirk Shoop | 638c334 | 2015-07-23 18:56:01 -0700 | [diff] [blame] | 213 | - 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 |