# 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
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: |
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
- 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
- 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
& "${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