]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/tools/build/azure-pipelines.yml
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / tools / build / azure-pipelines.yml
index fc67c0a7c5ff58ce4b79a6597a0dbe1e207a8fa1..66e888effaca80d14dfc3c64644b1d7a35853e15 100644 (file)
 # subject to the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #
-# Copyright Rene Rivera 2015-2019.
+# Copyright Rene Ferdinand Rivera Morell 2015-2021.
 
 trigger:
   branches:
     include:
-    - develop
-    - master
+    - main
+    - release
     - feature/*
   paths:
     exclude:
+    - .circleci/*
+    - .cirrus.yml
+    - .drone.star
+    - .github/workflows/*
+    - .semaphore/*
+    - .travis.yml
     - appveyor.yml
 pr:
   branches:
     include:
-    - develop
+    - main
   paths:
     exclude:
     - appveyor.yml
 
+variables:
+- { name: linux_latest_vm, value: 'ubuntu-20.04' }
+- { name: linux_latest_os, value: 'focal' }
+- { name: windows_latest_vm, value: 'windows-2019' }
+- { name: clang_latest, value: '13' }
+- { name: gcc_latest, value: '11' }
+- { name: vc_latest, value: 'vc142' }
+- { name: vs_latest, value: '2019' }
+- { name: xc_latest, value: '13.2.1' }
+- { name: macos_latest_vm, value: 'macOS-11' }
+
+
 stages:
 
-- stage: Test
+- stage: Core
   jobs:
 
-  - job: 'Linux'
-    pool:
-      vmImage: 'ubuntu-16.04'
+  - job: 'Linux_Default_Build'
     strategy:
       matrix:
-        GCC 9:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        GCC 8:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-8
-          PACKAGES: g++-8
-        GCC 7:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-7
-          PACKAGES: g++-7
-        GCC 6:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-6
-          PACKAGES: g++-6
-        GCC 5:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-5
-          PACKAGES: g++-5
-        GCC 4.9:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-4.9
-          PACKAGES: g++-4.9
-        GCC 4.8:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-4.8
-          PACKAGES: g++-4.8
-        GCC 4.7:
-          TOOLSET: gcc
-          TEST_TOOLSET: gcc
-          CXX: g++-4.7
-          PACKAGES: g++-4.7
-        Clang 9:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-9
-          PACKAGES: clang-9
-          LLVM_REPO: llvm-toolchain-xenial-9
-        Clang 8:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-8
-          PACKAGES: clang-8
-          LLVM_REPO: llvm-toolchain-xenial-8
-        Clang 7:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-7
-          PACKAGES: clang-7
-          LLVM_REPO: llvm-toolchain-xenial-7
-        Clang 6:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-6.0
-          PACKAGES: clang-6.0
-          LLVM_REPO: llvm-toolchain-xenial-6.0
-        Clang 5:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-5.0
-          PACKAGES: clang-5.0
-          LLVM_REPO: llvm-toolchain-xenial-5.0
-        Clang 4:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-4.0
-          PACKAGES: clang-4.0
-          LLVM_REPO: llvm-toolchain-xenial-4.0
-        Clang 3.9:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-3.9
-          PACKAGES: clang-3.9
-        Clang 3.8:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-3.8
-          PACKAGES: clang-3.8
-        Clang 3.7:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-3.7
-          PACKAGES: clang-3.7
-        Clang 3.6:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-3.6
-          PACKAGES: clang-3.6
-        Clang 3.5:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++-3.5
-          PACKAGES: clang-3.5
+        Clang ${{variables.clang_latest}}: {TOOLSET: "clang-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: "${{variables.clang_latest}}", VM_IMAGE: "${{variables.linux_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
     steps:
     - bash: |
-          set -e
-          uname -a
-          sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
-          if test -n "${LLVM_REPO}" ; then
-            wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
-            sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
-          fi
-          sudo -E apt-get -o Acquire::Retries=3 update
-          sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
+        set -e
+        uname -a
+        ./.ci/linux-cxx-install.sh
       displayName: Install
     - bash: |
-          set -e
-          cd src/engine
-          set PATH=${PATH};${CXX_PATH}
-          ./build.sh ${TOOLSET}
-          ./b2 -v
-          cd ../..
+        set -e
+        ./src/engine/build.sh --verbose
       displayName: Build
+
+  - job: 'Linux_Clang_Only_Build'
+    strategy:
+      matrix:
+        Clang ${{variables.clang_latest}}: {TOOLSET: "clang-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: "${{variables.clang_latest}}", VM_IMAGE: "${{variables.linux_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
+    steps:
     - bash: |
-          set -e
-          CXX_PATH=`which ${CXX}`
-          cd test
-          echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-          python test_all.py ${TEST_TOOLSET}
-          cd ..
-      displayName: Test
-    - bash: |
-          set -e
-          CXX_PATH=`which ${CXX}`
-          echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-          ./src/engine/b2 b2 warnings-as-errors=on toolset=${TEST_TOOLSET}
-      displayName: "No Warnings"
+        set -e
+        uname -a
+        ./.ci/linux-cxx-install.sh
+        sudo apt remove gcc g++
+      displayName: Install
     - bash: |
-          set -e
-          CXX_PATH=`which ${CXX}`
-          echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-          ./bootstrap.sh ${TOOLSET}
-          ./b2 --prefix=./.b2 install ${TEST_TOOLSET}
-      displayName: Bootstrap
+        set -e
+        ./src/engine/build.sh --verbose
+      displayName: Build
+
+  - job: 'Linux_Latest'
+    strategy:
+      matrix:
+        GCC ${{variables.gcc_latest}}: {TOOLSET: "gcc-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}", VM_IMAGE: "${{variables.linux_latest_vm}}"}
+        Clang ${{variables.clang_latest}}: {TOOLSET: "clang-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: 13, VM_IMAGE: "${{variables.linux_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
+    steps:
+    - template: .ci/azp-linux-test.yml
+
+  - job: 'Windows_Latest'
+    strategy:
+      matrix:
+        VS ${{variables.vs_latest}}: {TOOLSET: "${{variables.vc_latest}}", TEST_TOOLSET: msvc, VM_IMAGE: "${{variables.windows_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
+    steps:
+    - template: .ci/azp-windows-test.yml
+
+  - job: 'macOS'
+    strategy:
+      matrix:
+        Xcode ${{variables.xc_latest}}: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app", VM_IMAGE: "${{variables.macos_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
+    steps:
+    - template: .ci/azp-macos-test.yml
+
+  - job: 'Linux_ASAN'
+    strategy:
+      matrix:
+        Clang ${{variables.clang_latest}}: {TOOLSET: "clang-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: 13, VM_IMAGE: "${{variables.linux_latest_vm}}"}
+    pool:
+      vmImage: $(VM_IMAGE)
+    continueOnError: 'true'
+    steps:
+    - template: .ci/azp-linux-asan-test.yml
+
+- stage: Compilers
+  dependsOn: [Core]
+  jobs:
+
+  - job: 'Linux'
+    strategy:
+      matrix:
+        GCC 10: {TOOLSET: gcc-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-20.04'}
+        GCC 9: {TOOLSET: gcc-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-18.04'}
+        GCC 8: {TOOLSET: gcc-8, PACKAGES: g++-8, VM_IMAGE: 'ubuntu-18.04'}
+        GCC 7: {TOOLSET: gcc-7, PACKAGES: g++-7, VM_IMAGE: 'ubuntu-18.04'}
+        GCC 6: {TOOLSET: gcc-6, PACKAGES: g++-6, VM_IMAGE: 'ubuntu-18.04'}
+        GCC 5: {TOOLSET: gcc-5,  PACKAGES: g++-5, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 12: {TOOLSET: clang-12, PACKAGES: clang-12, LLVM_OS: focal, LLVM_VER: 12, VM_IMAGE: 'ubuntu-20.04'}
+        Clang 11: {TOOLSET: clang-11, PACKAGES: clang-11, LLVM_OS: focal, LLVM_VER: 11, VM_IMAGE: 'ubuntu-20.04'}
+        Clang 10: {TOOLSET: clang-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 9: {TOOLSET: clang-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 8: {TOOLSET: clang-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 7: {TOOLSET: clang-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 6: {TOOLSET: clang-6.0, PACKAGES: clang-6.0, LLVM_OS: bionic, LLVM_VER: 6.0, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 5: {TOOLSET: clang-5.0, PACKAGES: clang-5.0, LLVM_OS: bionic, LLVM_VER: 5.0, VM_IMAGE: 'ubuntu-18.04'}
+        Clang 4: {TOOLSET: clang-4.0, PACKAGES: clang-4.0, LLVM_OS: xenial, LLVM_VER: 4.0, VM_IMAGE: 'ubuntu-18.04'}
+    pool:
+      vmImage: $(VM_IMAGE)
+    steps:
+    - template: .ci/azp-linux-test.yml
 
   - job: 'Windows'
     strategy:
       matrix:
-        VS 2019:
-          TOOLSET: vc142
-          TEST_TOOLSET: msvc
-          VM_IMAGE: 'windows-2019'
-        VS 2017:
-          TOOLSET: vc141
-          TEST_TOOLSET: msvc
-          VM_IMAGE: 'vs2017-win2016'
-        MinGW 8.1.0:
-          TOOLSET: mingw
-          TEST_TOOLSET: gcc
-          VM_IMAGE: 'vs2017-win2016'
+        VS 2022: {TOOLSET: vc143, TEST_TOOLSET: msvc, VM_IMAGE: 'windows-2022'}
+        MinGW 8.1.0: {TOOLSET: mingw, TEST_TOOLSET: gcc, VM_IMAGE: 'windows-2019'}
     pool:
       vmImage: $(VM_IMAGE)
     steps:
-    - powershell: |
-          cd src/engine
-          $env:path += ';' + $env:CXX_PATH
-          cmd /c build.bat $env:TOOLSET
-          ./b2.exe -v
-          cd ../..
-      displayName: Build
-    - powershell: |
-          $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH
-          cd test
-          echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam
-          python test_all.py $env:TEST_TOOLSET
-          cd ..
-      displayName: Test
-    - powershell: |
-          $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH
-          $env:path += ';' + $env:CXX_PATH
-          echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam
-          ./src/engine/b2.exe --debug-configuration b2 warnings-as-errors=on toolset=$env:TEST_TOOLSET
-      displayName: "No Warnings"
-    - powershell: |
-          $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH
-          $env:path += ';' + $env:CXX_PATH
-          echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam
-          ./bootstrap.bat $env:TOOLSET
-          ./b2.exe --debug-configuration --prefix=./.b2 install toolset=$env:TEST_TOOLSET
-      displayName: Bootstrap
+    - template: .ci/azp-windows-test.yml
 
   - job: 'macOS'
     strategy:
       matrix:
-        Xcode 11.4:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.4_beta.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 11.3.1:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 11.3:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 11.2:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.2.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 11.1:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.1.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 11.0:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.app
-          VM_IMAGE: 'macOS-10.15'
-        Xcode 10.2.1:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_10.2.1.app
-          VM_IMAGE: 'macOS-10.14'
-        Xcode 10.2:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_10.2.app
-          VM_IMAGE: 'macOS-10.14'
-        Xcode 10.1:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_10.1.app
-          VM_IMAGE: 'macOS-10.14'
-        Xcode 10.0:
-          TOOLSET: clang
-          TEST_TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_10.app
-          VM_IMAGE: 'macOS-10.14'
+        Xcode 13.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_13.1.app, VM_IMAGE: 'macOS-11'}
+        Xcode 13.0: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_13.0.app, VM_IMAGE: 'macOS-11'}
+        Xcode 12.4: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.4.app, VM_IMAGE: 'macOS-11'}
+        Xcode 12.3: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.3.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 12.2: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.2.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 12.1.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.1.1.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 12.0.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.0.1.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.7: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.6: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.6.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.5: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.5.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.4.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.4.1.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.3.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.3.1.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.3: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.3.app, VM_IMAGE: 'macOS-10.15'}
+        Xcode 11.2.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.2.1.app, VM_IMAGE: 'macOS-10.15'}
     pool:
       vmImage: $(VM_IMAGE)
     steps:
-    - bash: |
-        set -e
-        uname -a
-        sudo xcode-select -switch ${XCODE_APP}
-        which clang++
-      displayName: Install
-    - bash: |
-        set -e
-        cd src/engine
-        ./build.sh ${TOOLSET}
-        ./b2 -v
-        cd ../..
-      displayName: Build
-    - bash: |
-        set -e
-        CXX_PATH=`which ${CXX}`
-        cd test
-        echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-        python test_all.py ${TEST_TOOLSET}
-        cd ..
-      displayName: Test
-    - bash: |
-        set -e
-        CXX_PATH=`which ${CXX}`
-        echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-        ./src/engine/b2 b2 warnings-as-errors=on toolset=${TEST_TOOLSET}
-      displayName: "No Warnings"
-    - bash: |
-        set -e
-        CXX_PATH=`which ${CXX}`
-        echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-        ./bootstrap.sh ${TOOLSET}
-        ./b2 --prefix=./.b2 install ${TEST_TOOLSET}
-      displayName: Bootstrap
+    - template: .ci/azp-macos-test.yml
 
-- stage: Boost
+- stage: Boost_Dev
+  dependsOn: [Core]
   jobs:
 
-  - job: 'Release_Linux'
-    displayName: 'Release Linux'
+  - job: 'Dev_Linux'
+    displayName: 'Dev Linux'
     pool:
       vmImage: 'ubuntu-latest'
     strategy:
       matrix:
-        1.72.0 .. GCC 9:
-          BOOST_VERSION: 1.72.0
-          BOOST_VERSION_U: 1_72_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.71.0 .. GCC 9:
-          BOOST_VERSION: 1.71.0
-          BOOST_VERSION_U: 1_71_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.70.0 .. GCC 9:
-          BOOST_VERSION: 1.70.0
-          BOOST_VERSION_U: 1_70_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.69.0 .. GCC 9:
-          BOOST_VERSION: 1.69.0
-          BOOST_VERSION_U: 1_69_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.68.0 .. GCC 9:
-          BOOST_VERSION: 1.68.0
-          BOOST_VERSION_U: 1_68_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.67.0 .. GCC 9:
-          BOOST_VERSION: 1.67.0
-          BOOST_VERSION_U: 1_67_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        1.66.0 .. GCC 9:
-          BOOST_VERSION: 1.66.0
-          BOOST_VERSION_U: 1_66_0
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
+        Master .. GCC ${{variables.gcc_latest}}: {BOOST_BRANCH: master, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        Master .. Clang ${{variables.clang_latest}}: {BOOST_BRANCH: master, TOOLSET: clang, CXX: "clang++-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: "${{variables.clang_latest}}"}
+        Develop .. GCC ${{variables.gcc_latest}}: {BOOST_BRANCH: develop, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        Develop .. Clang ${{variables.clang_latest}}: {BOOST_BRANCH: develop, TOOLSET: clang, CXX: "clang++-${{variables.clang_latest}}", PACKAGES: "clang-${{variables.clang_latest}}", LLVM_OS: "${{variables.linux_latest_os}}", LLVM_VER: "${{variables.clang_latest}}"}
     steps:
     - bash: |
-          set -e
-          uname -a
-          sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
-          if test -n "${LLVM_REPO}" ; then
-            wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
-            sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
-          fi
-          sudo -E apt-get -o Acquire::Retries=3 update
-          sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
+        set -e
+        uname -a
+        ./.ci/linux-cxx-install.sh
       displayName: Install
     - bash: |
-          set -e
-          cd src/engine
-          ./build.sh ${TOOLSET}
-          ./b2 -v
+        set -e
+        cd src/engine
+        ./build.sh ${TOOLSET} --cxx=${CXX}
+        ./b2 -v
       displayName: Build
     - bash: |
-          set -e
-          pushd ${HOME}
-          git clone -b boost-${BOOST_VERSION} --single-branch --recurse-submodules https://github.com/boostorg/boost.git boost_${BOOST_VERSION_U}
-          cd boost_${BOOST_VERSION_U}
-          CXX_PATH=`which ${CXX}`
-          echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
-          "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install
-          popd
+        set -e
+        pushd ${HOME}
+        git clone --recursive https://github.com/boostorg/boost.git
+        cd boost
+        git checkout ${BOOST_BRANCH}
+        CXX_PATH=`which ${CXX}`
+        echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
+        "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install
+        popd
       displayName: Test
 
-  - job: 'Dev_Linux'
-    displayName: 'Dev Linux'
+  - job: 'Dev_macOS'
+    displayName: 'Dev macOS'
     pool:
-      vmImage: 'ubuntu-latest'
+      vmImage: "${{variables.macos_latest_vm}}"
     strategy:
       matrix:
-        Master .. GCC 9:
-          BOOST_BRANCH: master
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        Master .. Clang 8:
-          BOOST_BRANCH: master
-          TOOLSET: clang
-          CXX: clang++-8
-          PACKAGES: clang-8
-          LLVM_REPO: llvm-toolchain-xenial-8
-        Develop .. GCC 9:
-          BOOST_BRANCH: develop
-          TOOLSET: gcc
-          CXX: g++-9
-          PACKAGES: g++-9
-        Develop .. Clang 8:
-          BOOST_BRANCH: develop
-          TOOLSET: clang
-          CXX: clang++-8
-          PACKAGES: clang-8
-          LLVM_REPO: llvm-toolchain-xenial-8
+        Master .. Xcode ${{variables.xc_latest}}: {BOOST_BRANCH: master, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        Develop .. Xcode ${{variables.xc_latest}}: {BOOST_BRANCH: develop, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
     steps:
     - bash: |
-          set -e
-          uname -a
-          sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
-          if test -n "${LLVM_REPO}" ; then
-            wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
-            sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
-          fi
-          sudo -E apt-get -o Acquire::Retries=3 update
-          sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
+        set -e
+        uname -a
+        sudo xcode-select -switch ${XCODE_APP}
+        which clang++
       displayName: Install
     - bash: |
-          set -e
-          cd src/engine
-          ./build.sh ${TOOLSET}
-          ./b2 -v
+        set -e
+        cd src/engine
+        ./build.sh ${TOOLSET} --cxx=${CXX}
+        ./b2 -v
       displayName: Build
     - bash: |
         set -e
@@ -459,65 +247,68 @@ stages:
         popd
       displayName: Test
 
-  - job: 'Release_macOS'
-    displayName: 'Release macOS'
+  - job: 'Dev_Windows'
+    displayName: 'Dev Windows'
+    pool:
+      vmImage: "${{variables.windows_latest_vm}}"
+    strategy:
+      matrix:
+        Master .. VS ${{variables.vs_latest}}: {BOOST_BRANCH: master, TOOLSET: "${{variables.vc_latest}}"}
+        Develop .. VS ${{variables.vs_latest}}: {BOOST_BRANCH: develop, TOOLSET: "${{variables.vc_latest}}"}
+    steps:
+    - powershell: |
+        cd src/engine
+        $env:path += ';' + ${env:CXX_PATH}
+        cmd /c build.bat ${env:TOOLSET}
+        ./b2.exe -v
+        cd ../..
+      displayName: Build
+    - powershell: |
+        $env:HOME = "$env:HOMEDRIVE" + "$env:HOMEPATH"
+        cd "${env:HOME}"
+        git clone --recursive https://github.com/boostorg/boost.git
+        cd boost
+        $OriginalErrorActionPreference = $ErrorActionPreference
+        $ErrorActionPreference= 'silentlycontinue'
+        git checkout "${env:BOOST_BRANCH}"
+        $ErrorActionPreference = $OriginalErrorActionPreference
+        echo "using" "msvc" ";" > "${env:HOME}/user-config.jam"
+        & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install
+      displayName: Test
+
+- stage: Boost_Release
+  dependsOn: [Boost_Dev]
+  jobs:
+
+  - job: 'Release_Linux'
+    displayName: 'Release Linux'
     pool:
-      vmImage: 'macOS-latest'
+      vmImage: 'ubuntu-latest'
     strategy:
       matrix:
-        1.72.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.72.0
-          BOOST_VERSION_U: 1_72_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        1.71.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.71.0
-          BOOST_VERSION_U: 1_71_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        1.70.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.70.0
-          BOOST_VERSION_U: 1_70_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        1.69.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.69.0
-          BOOST_VERSION_U: 1_69_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        1.68.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.68.0
-          BOOST_VERSION_U: 1_68_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.2.app
-        1.67.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.67.0
-          BOOST_VERSION_U: 1_67_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        1.66.0 .. Xcode 11.3.1:
-          BOOST_VERSION: 1.66.0
-          BOOST_VERSION_U: 1_66_0
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
+        1.78.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.78.0, BOOST_VERSION_U: 1_78_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.77.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.77.0, BOOST_VERSION_U: 1_77_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.76.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.76.0, BOOST_VERSION_U: 1_76_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.75.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.74.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.73.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.72.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.71.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.70.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.69.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.68.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.67.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
+        1.66.0 .. GCC ${{variables.gcc_latest}}: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: gcc, CXX: "g++-${{variables.gcc_latest}}", PACKAGES: "g++-${{variables.gcc_latest}}"}
     steps:
     - bash: |
         set -e
         uname -a
-        sudo xcode-select -switch ${XCODE_APP}
-        which clang++
+        ./.ci/linux-cxx-install.sh
       displayName: Install
     - bash: |
         set -e
         cd src/engine
-        ./build.sh ${TOOLSET}
+        ./build.sh ${TOOLSET} --cxx=${CXX}
         ./b2 -v
       displayName: Build
     - bash: |
@@ -531,22 +322,24 @@ stages:
         popd
       displayName: Test
 
-  - job: 'Dev_macOS'
-    displayName: 'Dev macOS'
+  - job: 'Release_macOS'
+    displayName: 'Release macOS'
     pool:
-      vmImage: 'macOS-latest'
+      vmImage: "${{variables.macos_latest_vm}}"
     strategy:
       matrix:
-        Master .. Xcode 11.3.1:
-          BOOST_BRANCH: master
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
-        Develop .. Xcode 11.3.1:
-          BOOST_BRANCH: develop
-          TOOLSET: clang
-          CXX: clang++
-          XCODE_APP: /Applications/Xcode_11.3.1.app
+        1.77.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.77.0, BOOST_VERSION_U: 1_77_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.76.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.76.0, BOOST_VERSION_U: 1_76_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.75.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.74.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.73.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.72.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.71.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.70.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.69.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.68.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.67.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
+        1.66.0 .. Xcode ${{variables.xc_latest}}: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: clang, CXX: clang++, XCODE_APP: "/Applications/Xcode_${{variables.xc_latest}}.app"}
     steps:
     - bash: |
         set -e
@@ -557,15 +350,14 @@ stages:
     - bash: |
         set -e
         cd src/engine
-        ./build.sh ${TOOLSET}
+        ./build.sh ${TOOLSET} --cxx=${CXX}
         ./b2 -v
       displayName: Build
     - bash: |
         set -e
         pushd ${HOME}
-        git clone --recursive https://github.com/boostorg/boost.git
-        cd boost
-        git checkout ${BOOST_BRANCH}
+        git clone -b boost-${BOOST_VERSION} --single-branch --recurse-submodules https://github.com/boostorg/boost.git boost_${BOOST_VERSION_U}
+        cd boost_${BOOST_VERSION_U}
         CXX_PATH=`which ${CXX}`
         echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
         "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install
@@ -575,41 +367,21 @@ stages:
   - job: 'Release_Windows'
     displayName: 'Release Windows'
     pool:
-      vmImage: 'windows-latest'
+      vmImage: "${{variables.windows_latest_vm}}"
     strategy:
       matrix:
-        1.73.0 .. VS 2019:
-          BOOST_VERSION: 1.73.0
-          BOOST_VERSION_U: 1_73_0
-          TOOLSET: vc142
-        1.72.0 .. VS 2019:
-          BOOST_VERSION: 1.72.0
-          BOOST_VERSION_U: 1_72_0
-          TOOLSET: vc142
-        1.71.0 .. VS 2019:
-          BOOST_VERSION: 1.71.0
-          BOOST_VERSION_U: 1_71_0
-          TOOLSET: vc142
-        1.70.0 .. VS 2019:
-          BOOST_VERSION: 1.70.0
-          BOOST_VERSION_U: 1_70_0
-          TOOLSET: vc142
-        1.69.0 .. VS 2019:
-          BOOST_VERSION: 1.69.0
-          BOOST_VERSION_U: 1_69_0
-          TOOLSET: vc142
-        1.68.0 .. VS 2019:
-          BOOST_VERSION: 1.68.0
-          BOOST_VERSION_U: 1_68_0
-          TOOLSET: vc142
-        1.67.0 .. VS 2019:
-          BOOST_VERSION: 1.67.0
-          BOOST_VERSION_U: 1_67_0
-          TOOLSET: vc142
-        1.66.0 .. VS 2019:
-          BOOST_VERSION: 1.66.0
-          BOOST_VERSION_U: 1_66_0
-          TOOLSET: vc142
+        1.77.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.77.0, BOOST_VERSION_U: 1_77_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.76.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.76.0, BOOST_VERSION_U: 1_76_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.75.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.74.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.73.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.72.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.71.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.70.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.69.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.68.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.67.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: "${{variables.vc_latest}}"}
+        1.66.0 .. VS ${{variables.vs_latest}}: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: "${{variables.vc_latest}}"}
     steps:
     - powershell: |
         cd src/engine
@@ -627,51 +399,19 @@ stages:
         & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install
       displayName: Test
 
-  - job: 'Dev_Windows'
-    displayName: 'Dev Windows'
-    pool:
-      vmImage: 'windows-latest'
-    strategy:
-      matrix:
-        Master .. VS 2019:
-          BOOST_BRANCH: master
-          TOOLSET: vc142
-        Develop .. VS 2019:
-          BOOST_BRANCH: develop
-          TOOLSET: vc142
-    steps:
-    - powershell: |
-        cd src/engine
-        $env:path += ';' + ${env:CXX_PATH}
-        cmd /c build.bat ${env:TOOLSET}
-        ./b2.exe -v
-        cd ../..
-      displayName: Build
-    - powershell: |
-        $env:HOME = "$env:HOMEDRIVE" + "$env:HOMEPATH"
-        cd "${env:HOME}"
-        git clone --recursive https://github.com/boostorg/boost.git
-        cd boost
-        $OriginalErrorActionPreference = $ErrorActionPreference
-        $ErrorActionPreference= 'silentlycontinue'
-        git checkout "${env:BOOST_BRANCH}"
-        $ErrorActionPreference = $OriginalErrorActionPreference
-        echo "using" "msvc" ";" > "${env:HOME}/user-config.jam"
-        & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install
-      displayName: Test
-
-- stage: WebsiteUpdate
+- stage: Website_Update
+  dependsOn: [Core]
   displayName: 'Website Update'
-  condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop')
+  condition: in(variables['Build.SourceBranch'], 'refs/heads/main', 'refs/heads/release')
   jobs:
 
   - job: Documentation
     pool:
-      vmImage: 'ubuntu-16.04'
+      vmImage: 'ubuntu-latest'
     steps:
     - task: UsePythonVersion@0
       inputs:
-        versionSpec: '2.x'
+        versionSpec: '3.x'
     - task: UseRubyVersion@0
     - bash: |
         pip install --user Pygments