1variables: 2 GIT_BRANCH: $(Build.SourceBranch) 3 4jobs: 5 - job: 'LinuxCoverage' 6 pool: 7 vmImage: 'ubuntu-16.04' 8 container: 9 image: djarek/boost-beast-ci:latest 10 options: --privileged 11 steps: 12 - bash: | 13 sudo apt update && sudo apt install -y g++ lcov 14 displayName: Get dependencies 15 - bash: | 16 set -e 17 export BUILD_DIR=$(pwd) 18 cd .. 19 $BUILD_DIR/tools/get-boost.sh $GIT_BRANCH $BUILD_DIR 20 cd boost-root 21 export CXX=g++ CC=gcc 22 ./bootstrap.sh || cat bootstrap.log 23 displayName: Get Boost 24 - bash: | 25 set -e 26 cd ../boost-root 27 ./b2 libs/beast/test//run-fat-tests toolset=gcc coverage=on link=static cxxstd=11 -j2 28 libs/beast/tools/coverage.sh 29 env: 30 CODECOV_TOKEN: $(CODECOV_TOKEN) 31 displayName: Build & Run tests 32 - job: 'Linux' 33 pool: 34 vmImage: 'ubuntu-16.04' 35 container: 36 image: djarek/boost-beast-ci:latest 37 options: --privileged 38 strategy: 39 matrix: 40 GCC 9 C++17 Release: 41 TOOLSET: gcc 42 CXX: g++-9 43 PACKAGES: g++-9 44 VARIANT: release 45 B2_FLAGS: <define>BOOST_BEAST_USE_STD_STRING_VIEW 46 CXXSTD: 17 47 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 48 GCC 9 C++11 HEADER_ONLY NO_DEPRECATED: 49 TOOLSET: gcc 50 CXX: g++-9 51 PACKAGES: g++-9 52 VARIANT: release 53 B2_FLAGS: <boost.beast.separate-compilation>off <boost.beast.allow-deprecated>off 54 CXXSTD: 11 55 B2_TARGETS: libs/beast/test//run-fat-tests 56 GCC 9 C++11 NO_DEPRECATED NO_TLS: 57 TOOLSET: gcc 58 CXX: g++-9 59 PACKAGES: g++-9 60 VARIANT: release 61 B2_FLAGS: <boost.beast.allow-deprecated>off <define>BOOST_NO_CXX11_THREAD_LOCAL 62 CXXSTD: 11 63 B2_TARGETS: libs/beast/test//run-fat-tests 64 GCC 9 C++11 UBASAN: 65 TOOLSET: gcc 66 CXX: g++-9 67 PACKAGES: g++-9 68 VARIANT: debug 69 B2_FLAGS: <address-sanitizer>norecover <undefined-sanitizer>norecover 70 # use GOLD to workaround UBSAN linker issue in gcc 7/8 71 # https://stackoverflow.com/questions/50024731/ld-unrecognized-option-push-state-no-as-needed 72 CXX_FLAGS: <cxxflags>"-msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-fuse-ld=gold 73 CXXSTD: 11 74 B2_TARGETS: libs/beast/test//run-fat-tests 75 GCC 9 C++11 TSAN: 76 TOOLSET: gcc 77 CXX: g++-9 78 PACKAGES: g++-9 79 VARIANT: release 80 B2_FLAGS: <thread-sanitizer>norecover 81 CXX_FLAGS: <cxxflags>"-msse4.2 -funsigned-char -fno-omit-frame-pointer" 82 CXXSTD: 11 83 B2_TARGETS: libs/beast/test//run-fat-tests 84 GCC 8 C++17 Release: 85 TOOLSET: gcc 86 CXX: g++-8 87 PACKAGES: g++-8 88 VARIANT: release 89 B2_FLAGS: <define>BOOST_BEAST_USE_STD_STRING_VIEW 90 CXXSTD: 17 91 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 92 GCC 8 C++11 HEADER_ONLY NO_DEPRECATED: 93 TOOLSET: gcc 94 CXX: g++-8 95 PACKAGES: g++-8 96 VARIANT: release 97 B2_FLAGS: <boost.beast.separate-compilation>off <boost.beast.allow-deprecated>off 98 CXXSTD: 11 99 B2_TARGETS: libs/beast/test//run-fat-tests 100 GCC 8 C++11 UBASAN: 101 TOOLSET: gcc 102 CXX: g++-8 103 PACKAGES: g++-8 104 VARIANT: debug 105 B2_FLAGS: <address-sanitizer>norecover <undefined-sanitizer>norecover 106 # use GOLD to workaround UBSAN linker issue in gcc 7/8 107 # https://stackoverflow.com/questions/50024731/ld-unrecognized-option-push-state-no-as-needed 108 CXX_FLAGS: <cxxflags>"-msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-fuse-ld=gold 109 CXXSTD: 11 110 B2_TARGETS: libs/beast/test//run-fat-tests 111 GCC 8 C++11 TSAN: 112 TOOLSET: gcc 113 CXX: g++-8 114 PACKAGES: g++-8 115 VARIANT: release 116 B2_FLAGS: <thread-sanitizer>norecover 117 CXX_FLAGS: <cxxflags>"-msse4.2 -funsigned-char -fno-omit-frame-pointer" 118 CXXSTD: 11 119 B2_TARGETS: libs/beast/test//run-fat-tests 120 GCC 7 C++14 Valgrind: 121 TOOLSET: gcc 122 CXX: g++-7 123 PACKAGES: g++-7 valgrind 124 VARIANT: release 125 B2_FLAGS: <define>BOOST_BEAST_TEST_STATIC_PRNG_SEED <valgrind>on <testing.launcher>"valgrind --track-origins=yes --error-exitcode=1 --max-stackframe=16000000 --suppressions=libs/beast/tools/valgrind.supp" 126 CXXSTD: 14 127 B2_TARGETS: libs/beast/test//run-fat-tests 128 GCC Default C++11 Release: 129 TOOLSET: gcc 130 CXX: g++ 131 PACKAGES: g++ 132 VARIANT: release 133 CXXSTD: 11 134 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 135 Clang 6.0 C++11 Debug: 136 TOOLSET: clang 137 CXX: clang++-6.0 138 PACKAGES: clang-6.0 139 VARIANT: debug 140 CXXSTD: 11 141 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 142 Clang 7 libc++ C++14 Valgrind: 143 TOOLSET: clang 144 CXX: clang++-7 145 PACKAGES: clang-7 libc++-7-dev libc++abi-7-dev valgrind 146 VARIANT: release 147 B2_FLAGS: <valgrind>on <testing.launcher>"valgrind --track-origins=yes --error-exitcode=1 --max-stackframe=16000000 --suppressions=libs/beast/tools/valgrind.supp" 148 CXXSTD: 14 149 CXX_FLAGS: <cxxflags>"-stdlib=libc++" <linkflags>"-stdlib=libc++" 150 B2_TARGETS: libs/beast/test//run-fat-tests 151 Clang 7 C++11 Debug: 152 TOOLSET: clang 153 CXX: clang++-7 154 PACKAGES: clang-7 155 VARIANT: debug 156 CXXSTD: 11 157 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 158 Clang 7 C++14 Release: 159 TOOLSET: clang 160 CXX: clang++-7 161 PACKAGES: clang-7 162 VARIANT: release 163 CXXSTD: 14 164 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 165 Clang Default C++11 Debug: 166 TOOLSET: clang 167 CXX: clang++ 168 PACKAGES: clang 169 VARIANT: debug 170 CXXSTD: 11 171 B2_TARGETS: libs/beast/test//run-fat-tests libs/beast/example 172 Clang 8 libc++ C++14 UBASAN: 173 TOOLSET: clang 174 CXX: clang++-8 175 PACKAGES: clang-8 libc++-8-dev libc++abi-8-dev 176 VARIANT: release 177 B2_FLAGS: <address-sanitizer>norecover <undefined-sanitizer>norecover 178 UBSAN_OPTIONS: print_stacktrace=1 179 CXXSTD: 14 180 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 181 B2_TARGETS: libs/beast/test//run-fat-tests 182 Clang 8 libc++ C++14 TSAN: 183 TOOLSET: clang 184 CXX: clang++-8 185 PACKAGES: clang-8 libc++-8-dev libc++abi-8-dev 186 VARIANT: release 187 B2_FLAGS: <thread-sanitizer>norecover 188 CXXSTD: 14 189 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 190 B2_TARGETS: libs/beast/test//run-fat-tests 191 Clang 9 libc++ C++14 Release HEADER_ONLY NO_DEPRECATED: 192 TOOLSET: clang 193 CXX: clang++-9 194 PACKAGES: clang-9 libc++-9-dev libc++abi-9-dev 195 VARIANT: release 196 B2_FLAGS: <boost.beast.separate-compilation>off <boost.beast.allow-deprecated>off 197 CXXSTD: 14 198 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 199 B2_TARGETS: libs/beast/test//run-fat-tests 200 Clang 9 libc++ C++17 UBASAN: 201 TOOLSET: clang 202 CXX: clang++-9 203 PACKAGES: clang-9 libc++-9-dev libc++abi-9-dev 204 VARIANT: release 205 B2_FLAGS: <address-sanitizer>norecover <undefined-sanitizer>norecover 206 UBSAN_OPTIONS: print_stacktrace=1 207 CXXSTD: 17 208 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 209 B2_TARGETS: libs/beast/test//run-fat-tests 210 Clang 9 libc++ C++17 TSAN: 211 TOOLSET: clang 212 CXX: clang++-9 213 PACKAGES: clang-9 libc++-9-dev libc++abi-9-dev 214 VARIANT: release 215 B2_FLAGS: <thread-sanitizer>norecover 216 CXXSTD: 17 217 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 218 B2_TARGETS: libs/beast/test//run-fat-tests 219 Clang 9 libc++ C++11 Release HEADER_ONLY NO_DEPRECATED: 220 TOOLSET: clang 221 CXX: clang++-9 222 PACKAGES: clang-9 libc++-9-dev libc++abi-9-dev 223 VARIANT: release 224 B2_FLAGS: <boost.beast.separate-compilation>off <boost.beast.allow-deprecated>off 225 CXXSTD: 11 226 CXX_FLAGS: <cxxflags>"-stdlib=libc++ -msse4.2 -funsigned-char -fno-omit-frame-pointer" <linkflags>-stdlib=libc++ 227 B2_TARGETS: libs/beast/test//run-fat-tests 228 steps: 229 - bash: | 230 sudo apt update && sudo apt install -y $PACKAGES 231 displayName: Get dependencies 232 - bash: | 233 set -e 234 export BUILD_DIR=$(pwd) 235 cd .. 236 $BUILD_DIR/tools/get-boost.sh $GIT_BRANCH $BUILD_DIR 237 cd boost-root 238 ./bootstrap.sh || cat bootstrap.log 239 cp libs/beast/tools/user-config.jam ~/user-config.jam 240 echo "using $TOOLSET : : $(which $CXX) : $CXX_FLAGS ;" >> ~/user-config.jam 241 echo "project : requirements $B2_FLAGS ;" >> ~/user-config.jam 242 displayName: Get Boost 243 - bash: | 244 set -e 245 cd ../boost-root 246 echo "B2_FLAGS: $B2_FLAGS" 247 ./b2 -j2 \ 248 --debug-configuration \ 249 cxxstd=$CXXSTD \ 250 toolset=$TOOLSET \ 251 variant=$VARIANT \ 252 $B2_TARGETS 253 displayName: Build & Run tests 254 255 - job: 'macOS' 256 pool: 257 vmImage: 'macOS-10.13' 258 strategy: 259 matrix: 260 Xcode 10.1 C++17 Release: 261 TOOLSET: clang 262 VARIANT: release 263 CXXSTD: 17 264 XCODE_APP: /Applications/Xcode_10.1.app 265 Xcode 9.4.1 C++11 Release: 266 TOOLSET: clang 267 VARIANT: release 268 CXXSTD: 11 269 XCODE_APP: /Applications/Xcode_9.4.1.app 270 steps: 271 - bash: | 272 brew install openssl 273 displayName: Get OpenSSL 274 - bash: | 275 set -e 276 sudo xcode-select -switch ${XCODE_APP} 277 which clang++ 278 export BUILD_DIR=$(pwd) 279 cd .. 280 $BUILD_DIR/tools/get-boost.sh $GIT_BRANCH $BUILD_DIR 281 cd boost-root 282 ./bootstrap.sh || cat bootstrap.log 283 cp libs/beast/tools/user-config.jam ~/user-config.jam 284 displayName: Get Boost 285 - bash: | 286 set -e 287 export OPENSSL_ROOT=$(brew --prefix openssl) 288 cd ../boost-root 289 ./b2 -j2 \ 290 --debug-configuration \ 291 define=BOOST_COROUTINES_NO_DEPRECATION_WARNING=1 \ 292 cxxstd=$CXXSTD \ 293 libs/beast/test//run-fat-tests \ 294 libs/beast/example \ 295 toolset=$TOOLSET \ 296 variant=$VARIANT 297 displayName: Build & Run tests 298 299 - job: 'Windows' 300 strategy: 301 matrix: 302 # MSVC14.2: # FIXME(djarek): windows-2019 doesn't have vcpkg 303 MSVC14.2 C++17 x64: 304 VM_IMAGE: 'windows-2019' 305 TOOLSET: msvc-14.2 306 B2_FLAGS: define=BOOST_BEAST_USE_STD_STRING_VIEW 307 CXXSTD: 17 308 ADDRMODEL: 64 309 MSVC14.1 C++17 x64: 310 VM_IMAGE: 'vs2017-win2016' 311 TOOLSET: msvc-14.1 312 B2_FLAGS: define=BOOST_BEAST_USE_STD_STRING_VIEW 313 CXXSTD: 17 314 ADDRMODEL: 64 315 MSVC14.0 C++11 x64: 316 VM_IMAGE: 'vs2017-win2016' 317 TOOLSET: msvc-14.0 318 CXXSTD: 11 319 ADDRMODEL: 64 320 pool: 321 vmImage: $(VM_IMAGE) 322 steps: 323 - bash: | 324 vcpkg install openssl --triplet "x$ADDRMODEL""-windows" 325 displayName: Get OpenSSL 326 327 - bash: | 328 set -e 329 export BUILD_DIR=$(pwd) 330 cd .. 331 $BUILD_DIR/tools/get-boost.sh $GIT_BRANCH $BUILD_DIR 332 cd boost-root 333 ./bootstrap.sh 334 cp libs/beast/tools/user-config.jam ~/user-config.jam 335 displayName: Get Boost 336 337 - bash: | 338 set -e 339 echo "VCPKG_ROOT: $VCPKG_INSTALLATION_ROOT" 340 export OPENSSL_ROOT="$VCPKG_INSTALLATION_ROOT""/installed/x$ADDRMODEL""-windows" 341 cd ../boost-root 342 ./b2 -j2 \ 343 --debug-configuration \ 344 variant=debug \ 345 cxxstd=$CXXSTD \ 346 address-model=$ADDRMODEL \ 347 toolset=$TOOLSET \ 348 $B2_FLAGS \ 349 libs/beast/example 350 ./b2 -j2 \ 351 --debug-configuration \ 352 variant=debug,release \ 353 cxxstd=$CXXSTD \ 354 address-model=$ADDRMODEL \ 355 toolset=$TOOLSET \ 356 $B2_FLAGS \ 357 --verbose-test \ 358 libs/beast/test//run-fat-tests 359 displayName: Build & Run tests 360