• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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