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