Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / beast / azure-pipelines.yml
1 variables:
2   GIT_BRANCH: $(Build.SourceBranch)
3
4 jobs:
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