• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Use, modification, and distribution are
2# subject to the Boost Software License, Version 1.0. (See accompanying
3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4#
5# Copyright Rene Rivera 2019-2020.
6
7trigger:
8  branches:
9    include:
10    - develop
11    - master
12    - feature/*
13pr:
14  branches:
15    include:
16    - develop
17
18variables:
19  AZP: 1
20  AZP_REPO_DIR: $(Build.Repository.LocalPath)
21  AZP_BRANCH: $(Build.SourceBranch)
22  AZP_BRANCH_NAME: $(Build.SourceBranchName)
23  AZP_COMMIT: $(Build.SourceVersion)
24  AZP_REPO: $(Build.Repository.Name)
25  AZP_PULL_REQUEST: $(System.PullRequest.PullRequestNumber)
26
27stages:
28
29- stage: Test
30  jobs:
31
32  - job: 'Linux'
33    strategy:
34      matrix:
35        GCC 9 (GNU):
36          TOOLSET: gcc
37          CXX: g++-9
38          PACKAGES: g++-9
39          B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu'
40          VM_IMAGE: 'ubuntu-18.04'
41        GCC 9 (ISO):
42          TOOLSET: gcc
43          CXX: g++-9
44          PACKAGES: g++-9
45          B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso'
46          VM_IMAGE: 'ubuntu-18.04'
47        GCC 9:
48          TOOLSET: gcc
49          CXX: g++-9
50          PACKAGES: g++-9
51          VM_IMAGE: 'ubuntu-18.04'
52        GCC 8:
53          TOOLSET: gcc
54          CXX: g++-8
55          PACKAGES: g++-8
56          VM_IMAGE: 'ubuntu-18.04'
57        GCC 7:
58          TOOLSET: gcc
59          CXX: g++-7
60          PACKAGES: g++-7
61          VM_IMAGE: 'ubuntu-18.04'
62        GCC 6:
63          TOOLSET: gcc
64          CXX: g++-6
65          PACKAGES: g++-6
66          VM_IMAGE: 'ubuntu-18.04'
67        GCC 5:
68          TOOLSET: gcc
69          CXX: g++-5
70          PACKAGES: g++-5
71          VM_IMAGE: 'ubuntu-18.04'
72        GCC 4.9:
73          TOOLSET: gcc
74          CXX: g++-4.9
75          PACKAGES: g++-4.9
76          VM_IMAGE: 'ubuntu-16.04'
77        GCC 4.8:
78          TOOLSET: gcc
79          CXX: g++-4.8
80          PACKAGES: g++-4.8
81          VM_IMAGE: 'ubuntu-16.04'
82        GCC 4.7:
83          TOOLSET: gcc
84          CXX: g++-4.7
85          PACKAGES: g++-4.7
86          VM_IMAGE: 'ubuntu-16.04'
87        Clang 9:
88          TOOLSET: clang
89          CXX: clang++-9
90          PACKAGES: clang-9
91          LLVM_REPO: llvm-toolchain-xenial-9
92          VM_IMAGE: 'ubuntu-18.04'
93        Clang 8:
94          TOOLSET: clang
95          CXX: clang++-8
96          PACKAGES: clang-8
97          LLVM_REPO: llvm-toolchain-xenial-8
98          VM_IMAGE: 'ubuntu-18.04'
99        Clang 7:
100          TOOLSET: clang
101          CXX: clang++-7
102          PACKAGES: clang-7
103          LLVM_REPO: llvm-toolchain-xenial-7
104          VM_IMAGE: 'ubuntu-18.04'
105        Clang 6:
106          TOOLSET: clang
107          CXX: clang++-6.0
108          PACKAGES: clang-6.0
109          LLVM_REPO: llvm-toolchain-xenial-6.0
110          VM_IMAGE: 'ubuntu-18.04'
111        Clang 5:
112          TOOLSET: clang
113          CXX: clang++-5.0
114          PACKAGES: clang-5.0
115          LLVM_REPO: llvm-toolchain-xenial-5.0
116          VM_IMAGE: 'ubuntu-18.04'
117        Clang 4:
118          TOOLSET: clang
119          CXX: clang++-4.0
120          PACKAGES: clang-4.0
121          LLVM_REPO: llvm-toolchain-xenial-4.0
122          VM_IMAGE: 'ubuntu-18.04'
123        Clang 3.9:
124          TOOLSET: clang
125          CXX: clang++-3.9
126          PACKAGES: clang-3.9
127          VM_IMAGE: 'ubuntu-18.04'
128        Clang 3.8:
129          TOOLSET: clang
130          CXX: clang++-3.8
131          PACKAGES: clang-3.8
132          VM_IMAGE: 'ubuntu-16.04'
133        Clang 3.7:
134          TOOLSET: clang
135          CXX: clang++-3.7
136          PACKAGES: clang-3.7
137          VM_IMAGE: 'ubuntu-16.04'
138        Clang 3.6:
139          TOOLSET: clang
140          CXX: clang++-3.6
141          PACKAGES: clang-3.6
142          VM_IMAGE: 'ubuntu-16.04'
143        Clang 3.5:
144          TOOLSET: clang
145          CXX: clang++-3.5
146          PACKAGES: clang-3.5
147          VM_IMAGE: 'ubuntu-16.04'
148    pool:
149      vmImage: $(VM_IMAGE)
150    steps:
151    - bash: |
152        set -e
153        uname -a
154        sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
155        if test -n "${LLVM_REPO}" ; then
156          wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
157          sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
158        fi
159        sudo -E apt-get update
160        sudo -E apt-get -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
161      displayName: 'Install CXX'
162    - bash: |
163        set -e
164        pushd ${HOME}
165        wget -nv https://github.com/boostorg/build/archive/master.tar.gz
166        tar -zxf master.tar.gz
167        cd build-master
168        CXX= ./bootstrap.sh
169        sudo ./b2 install
170        popd
171      displayName: 'Install B2'
172    - bash: |
173        set -e
174        CXX_PATH=`which ${CXX}`
175        echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
176        pushd test
177        b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS}
178        popd
179      displayName: Test
180
181  - job: 'macOS'
182    strategy:
183      matrix:
184        Xcode 11.4:
185          TOOLSET: clang
186          CXX: clang++
187          XCODE_APP: /Applications/Xcode_11.4_beta.app
188          VM_IMAGE: 'macOS-10.15'
189        Xcode 11.3.1:
190          TOOLSET: clang
191          CXX: clang++
192          XCODE_APP: /Applications/Xcode_11.3.1.app
193          VM_IMAGE: 'macOS-10.15'
194        Xcode 11.3:
195          TOOLSET: clang
196          CXX: clang++
197          XCODE_APP: /Applications/Xcode_11.3.app
198          VM_IMAGE: 'macOS-10.15'
199        Xcode 11.2:
200          TOOLSET: clang
201          CXX: clang++
202          XCODE_APP: /Applications/Xcode_11.2.app
203          VM_IMAGE: 'macOS-10.15'
204        Xcode 11.1:
205          TOOLSET: clang
206          CXX: clang++
207          XCODE_APP: /Applications/Xcode_11.1.app
208          VM_IMAGE: 'macOS-10.15'
209        Xcode 11.0:
210          TOOLSET: clang
211          CXX: clang++
212          XCODE_APP: /Applications/Xcode_11.app
213          VM_IMAGE: 'macOS-10.15'
214        Xcode 10.2.1:
215          TOOLSET: clang
216          CXX: clang++
217          XCODE_APP: /Applications/Xcode_10.2.1.app
218          VM_IMAGE: 'macOS-10.14'
219        Xcode 10.2:
220          TOOLSET: clang
221          CXX: clang++
222          XCODE_APP: /Applications/Xcode_10.2.app
223          VM_IMAGE: 'macOS-10.14'
224        Xcode 10.1:
225          TOOLSET: clang
226          CXX: clang++
227          XCODE_APP: /Applications/Xcode_10.1.app
228          VM_IMAGE: 'macOS-10.14'
229        Xcode 10.0:
230          TOOLSET: clang
231          CXX: clang++
232          XCODE_APP: /Applications/Xcode_10.app
233          VM_IMAGE: 'macOS-10.14'
234    pool:
235      vmImage: $(VM_IMAGE)
236    steps:
237    - bash: |
238        set -e
239        uname -a
240        sudo xcode-select -switch ${XCODE_APP}
241        which clang++
242        clang++ --version
243      displayName: 'Install CXX'
244    - bash: |
245        set -e
246        pushd ${HOME}
247        wget -nv https://github.com/boostorg/build/archive/master.tar.gz
248        tar -zxf master.tar.gz
249        cd build-master
250        CXX= ./bootstrap.sh
251        sudo ./b2 install
252        popd
253      displayName: 'Install B2'
254    - bash: |
255        set -e
256        CXX_PATH=`which ${CXX}`
257        echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
258        pushd test
259        b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS}
260        popd
261      displayName: Test
262
263  - job: 'Windows'
264    strategy:
265      matrix:
266        VS 2019:
267          TOOLSET: msvc
268          TOOLSET_VERSION: 14.2
269          B2_ARGS: address-model=32,64 cxxstd=14,latest
270          VM_IMAGE: 'windows-2019'
271        VS 2019 (UWP DESKTOP):
272          TOOLSET: msvc
273          TOOLSET_VERSION: 14.2
274          B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
275          VM_IMAGE: 'windows-2019'
276        VS 2019 (UWP PHONE):
277          TOOLSET: msvc
278          TOOLSET_VERSION: 14.2
279          B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP
280          VM_IMAGE: 'windows-2019'
281        VS 2019 (UWP STORE):
282          TOOLSET: msvc
283          TOOLSET_VERSION: 14.2
284          B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
285          VM_IMAGE: 'windows-2019'
286        VS 2019 (UWP SERVER):
287          TOOLSET: msvc
288          TOOLSET_VERSION: 14.2
289          B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER
290          VM_IMAGE: 'windows-2019'
291        VS 2019 (UWP SYSTEM):
292          TOOLSET: msvc
293          TOOLSET_VERSION: 14.2
294          B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM
295          VM_IMAGE: 'windows-2019'
296        VS 2017:
297          TOOLSET: msvc
298          TOOLSET_VERSION: 14.1
299          VM_IMAGE: 'vs2017-win2016'
300        MinGW 8.1.0:
301          TOOLSET: gcc
302          VM_IMAGE: 'windows-2019'
303        MinGW 8.1.0 (UWP DESKTOP):
304          TOOLSET: gcc
305          B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
306          VM_IMAGE: 'windows-2019'
307        MinGW 8.1.0 (UWP STORE):
308          TOOLSET: gcc
309          B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
310          VM_IMAGE: 'windows-2019'
311    pool:
312      vmImage: $(VM_IMAGE)
313    steps:
314    - script: |
315        cd %BUILD_SOURCESDIRECTORY%/..
316        curl "https://github.com/boostorg/build/archive/master.zip" -L -o b2.zip
317      displayName: Download B2
318    - task: ExtractFiles@1
319      inputs:
320        archiveFilePatterns: $(Build.SourcesDirectory)/../b2.zip
321        destinationFolder: $(Build.SourcesDirectory)/..
322        cleanDestinationFolder: false
323      displayName: Extract B2
324    - script: |
325        echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam
326        cd %BUILD_SOURCESDIRECTORY%/../build-master
327        cmd.exe /c bootstrap.bat
328      displayName: Install B2
329    - script: |
330        set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-master
331        cd %BUILD_SOURCESDIRECTORY%/test
332        %BUILD_SOURCESDIRECTORY%/../build-master/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS%
333      displayName: Test
334