From ff1068e67d6938033ecf7bcdf60ea5daf8630802 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 09:52:42 +0200 Subject: [PATCH 1/9] Drone: Add Clang 16-22 & GCC 13-16 --- .drone.star | 65 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/.drone.star b/.drone.star index a80d12ca..23222cad 100644 --- a/.drone.star +++ b/.drone.star @@ -22,34 +22,45 @@ def job( def main(ctx): return [ - job(compiler='clang-3.5', cxxstd='11', os='ubuntu-16.04'), - job(compiler='clang-3.6', cxxstd='11,14', os='ubuntu-16.04'), - job(compiler='clang-3.8', cxxstd='11,14', os='ubuntu-16.04'), - job(compiler='clang-3.9', cxxstd='11,14', os='ubuntu-18.04'), - job(compiler='clang-4.0', cxxstd='11,14', os='ubuntu-18.04'), - job(compiler='clang-5.0', cxxstd='11,14,1z', os='ubuntu-18.04'), - job(compiler='clang-6.0', cxxstd='11,14,17', os='ubuntu-20.04'), - job(compiler='clang-7', cxxstd='11,14,17', os='ubuntu-20.04'), - job(compiler='clang-8', cxxstd='11,14,17,2a', os='ubuntu-20.04'), - job(compiler='clang-9', cxxstd='11,14,17,2a', os='ubuntu-20.04'), - job(compiler='clang-10', cxxstd='11,14,17,2a', os='ubuntu-20.04'), - job(compiler='clang-11', cxxstd='11,14,17,2a', os='ubuntu-22.04'), - job(compiler='clang-12', cxxstd='11,14,17,20', os='ubuntu-22.04'), - job(compiler='clang-13', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), - job(compiler='clang-14', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), - job(compiler='clang-15', cxxstd='11,14,17,20,2b', os='ubuntu-22.04', add_llvm=True), + job(compiler='clang-3.5', cxxstd='11', os='ubuntu-16.04'), + job(compiler='clang-3.6', cxxstd='11,14', os='ubuntu-16.04'), + job(compiler='clang-3.8', cxxstd='11,14', os='ubuntu-16.04'), + job(compiler='clang-3.9', cxxstd='11,14', os='ubuntu-18.04'), + job(compiler='clang-4.0', cxxstd='11,14', os='ubuntu-18.04'), + job(compiler='clang-5.0', cxxstd='11,14,1z', os='ubuntu-18.04'), + job(compiler='clang-6.0', cxxstd='11,14,17', os='ubuntu-20.04'), + job(compiler='clang-7', cxxstd='11,14,17', os='ubuntu-20.04'), + job(compiler='clang-8', cxxstd='11,14,17,2a', os='ubuntu-20.04'), + job(compiler='clang-9', cxxstd='11,14,17,2a', os='ubuntu-20.04'), + job(compiler='clang-10', cxxstd='11,14,17,2a', os='ubuntu-20.04'), + job(compiler='clang-11', cxxstd='11,14,17,2a', os='ubuntu-22.04'), + job(compiler='clang-12', cxxstd='11,14,17,20', os='ubuntu-22.04'), + job(compiler='clang-13', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), + job(compiler='clang-14', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), + job(compiler='clang-15', cxxstd='11,14,17,20,2b', os='ubuntu-22.04', add_llvm=True), + job(compiler='clang-16', cxxstd='11,14,17,20,2b', os='ubuntu-24.04'), + job(compiler='clang-17', cxxstd='11,14,17,20,23', os='ubuntu-24.04'), + job(compiler='clang-18', cxxstd='11,14,17,20,23,2c', os='ubuntu-24.04'), + job(compiler='clang-19', cxxstd='11,14,17,20,23,2c', os='ubuntu-24.04'), + job(compiler='clang-20', cxxstd='11,14,17,20,23,2c', os='ubuntu-24.04'), + job(compiler='clang-21', cxxstd='11,14,17,20,23,2c', os='ubuntu-26.04'), + job(compiler='clang-22', cxxstd='11,14,17,20,23,2c', os='ubuntu-26.04'), - job(compiler='gcc-4.7', cxxstd='11', os='ubuntu-16.04'), - job(compiler='gcc-4.8', cxxstd='11', os='ubuntu-16.04'), - job(compiler='gcc-4.9', cxxstd='11', os='ubuntu-16.04'), - job(compiler='gcc-5', cxxstd='11,14,1z', os='ubuntu-18.04'), - job(compiler='gcc-6', cxxstd='11,14,1z', os='ubuntu-18.04'), - job(compiler='gcc-7', cxxstd='11,14,1z', os='ubuntu-18.04'), - job(compiler='gcc-8', cxxstd='11,14,17,2a', os='ubuntu-18.04'), - job(compiler='gcc-9', cxxstd='11,14,17,2a', os='ubuntu-20.04'), - job(compiler='gcc-10', cxxstd='11,14,17,20', os='ubuntu-22.04'), - job(compiler='gcc-11', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), - job(compiler='gcc-12', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), + job(compiler='gcc-4.7', cxxstd='11', os='ubuntu-16.04'), + job(compiler='gcc-4.8', cxxstd='11', os='ubuntu-16.04'), + job(compiler='gcc-4.9', cxxstd='11', os='ubuntu-16.04'), + job(compiler='gcc-5', cxxstd='11,14,1z', os='ubuntu-18.04'), + job(compiler='gcc-6', cxxstd='11,14,1z', os='ubuntu-18.04'), + job(compiler='gcc-7', cxxstd='11,14,1z', os='ubuntu-18.04'), + job(compiler='gcc-8', cxxstd='11,14,17,2a', os='ubuntu-18.04'), + job(compiler='gcc-9', cxxstd='11,14,17,2a', os='ubuntu-20.04'), + job(compiler='gcc-10', cxxstd='11,14,17,20', os='ubuntu-22.04'), + job(compiler='gcc-11', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), + job(compiler='gcc-12', cxxstd='11,14,17,20,2b', os='ubuntu-22.04'), + job(compiler='gcc-13', cxxstd='11,14,17,20,2b', os='ubuntu-24.04'), + job(compiler='gcc-14', cxxstd='11,14,17,20,23', os='ubuntu-24.04'), + job(compiler='gcc-15', cxxstd='11,14,17,20,23,2c', os='ubuntu-26.04'), + job(compiler='gcc-16', cxxstd='11,14,17,20,23,26', os='ubuntu-26.04'), job(name='Coverage', buildtype='codecov', compiler='gcc-8', cxxstd='11,14,17,2a', os='ubuntu-18.04'), From 93476d198a37eebfcefae52f983b4e7f2f9ce075 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 10:06:07 +0200 Subject: [PATCH 2/9] Update OS images and compilers for Azure Pipelines --- .azure-pipelines.yml | 76 +++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index c8534c2c..458011a9 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -43,47 +43,51 @@ parameters: - name: jobs type: object default: - - { compiler: gcc-4.8, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: gcc-4.9, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: gcc-5, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:18.04' } - - { compiler: gcc-6, cxxstd: '11,14', os: ubuntu-20.04, container: 'ubuntu:18.04' } - - { compiler: gcc-7, cxxstd: '11,14,17', os: ubuntu-20.04 } - - { compiler: gcc-8, cxxstd: '14,17,2a', os: ubuntu-20.04 } - - { compiler: gcc-9, cxxstd: '14,17,2a', os: ubuntu-20.04 } - - { compiler: gcc-10, cxxstd: '14,17,20', os: ubuntu-20.04 } - - { compiler: gcc-11, cxxstd: '14,17,20', os: ubuntu-20.04 } - - { compiler: clang-3.5, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-3.6, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-3.7, cxxstd: '11', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-3.8, cxxstd: '11,14', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-3.9, cxxstd: '11,14', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-4.0, cxxstd: '11,14', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-5.0, cxxstd: '11,14,17', os: ubuntu-20.04, container: 'ubuntu:16.04' } - - { compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-20.04 } - - { compiler: clang-7, cxxstd: '14,17', os: ubuntu-20.04 } - - { compiler: clang-8, cxxstd: '14,17', os: ubuntu-20.04 } - - { compiler: clang-9, cxxstd: '14,17,2a', os: ubuntu-20.04 } - - { compiler: clang-10, cxxstd: '14,17,20', os: ubuntu-20.04 } - - { compiler: clang-11, cxxstd: '14,17,20', os: ubuntu-20.04 } - - { compiler: clang-12, cxxstd: '14,17,20', os: ubuntu-22.04, gcc_toolchain: 12 } - - { compiler: clang-13, cxxstd: '14,17,20', os: ubuntu-22.04, gcc_toolchain: 12 } - - { compiler: clang-14, cxxstd: '14,17,20', os: ubuntu-22.04, gcc_toolchain: 12 } + - { compiler: gcc-4.8, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: gcc-4.9, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: gcc-5, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:18.04' } + - { compiler: gcc-6, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:18.04' } + - { compiler: gcc-7, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: gcc-8, cxxstd: '14,17,2a', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: gcc-9, cxxstd: '14,17,2a', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: gcc-10, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: gcc-11, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: gcc-13, cxxstd: '14,17,20', os: ubuntu-24.04 } + - { compiler: gcc-14, cxxstd: '14,17,20,23', os: ubuntu-24.04 } + - { compiler: clang-3.5, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-3.6, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-3.7, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-3.8, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-3.9, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-4.0, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-5.0, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:16.04' } + - { compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-7, cxxstd: '14,17', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-8, cxxstd: '14,17', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-9, cxxstd: '14,17,2a', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-10, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-11, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } + - { compiler: clang-12, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: clang-13, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: clang-14, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: clang-16, cxxstd: '14,17,20,23', os: ubuntu-24.04 } + - { compiler: clang-17, cxxstd: '14,17,20,23', os: ubuntu-24.04 } + - { compiler: clang-18, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } + - { compiler: clang-19, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } - { name: Linux_clang_6_libcxx, compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-20.04, container: 'ubuntu:18.04', install: 'clang-6.0 libc++-dev libc++abi-dev', env: {B2_STDLIB: libc++ } } # OSX - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '13.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '13.2.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '13.3.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '13.4' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '13.4.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-12, xcode: '14.0.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-13, xcode: '14.1' } - - { compiler: clang, cxxstd: '14,17,2a', os: macOS-13, xcode: '14.3.1' } - - { compiler: clang, cxxstd: '14,17,20', os: macOS-13, xcode: '15.1' } - - { compiler: clang, cxxstd: '14,17,20', os: macOS-13, xcode: '15.2' } - { compiler: clang, cxxstd: '14,17,20', os: macOS-14, xcode: '15.3' } - { compiler: clang, cxxstd: '14,17,20', os: macOS-14, xcode: '15.4' } - - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-14, xcode: '16.0' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-14, xcode: '16.1' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-14, xcode: '16.2' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-15, xcode: '16.3' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-15, xcode: '16.4' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-26, xcode: '26.0.1' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-26, xcode: '26.2' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-26, xcode: '26.3' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-26, xcode: '26.4.1' } + - { compiler: clang, cxxstd: '14,17,20,23', os: macOS-26, xcode: '26.5' } stages: - stage: Test From c8d97cdd1e3de503d48a60d88ccdea15c941ad96 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 10:10:02 +0200 Subject: [PATCH 3/9] Azure: Update windows jobs --- .azure-pipelines.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 458011a9..1ac768da 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -75,7 +75,7 @@ parameters: - { compiler: clang-18, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } - { compiler: clang-19, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } - { name: Linux_clang_6_libcxx, - compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-20.04, container: 'ubuntu:18.04', install: 'clang-6.0 libc++-dev libc++abi-dev', env: {B2_STDLIB: libc++ } } + compiler: clang-6.0, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:18.04', install: 'clang-6.0 libc++-dev libc++abi-dev', env: {B2_STDLIB: libc++ } } # OSX - { compiler: clang, cxxstd: '14,17,20', os: macOS-14, xcode: '15.3' } - { compiler: clang, cxxstd: '14,17,20', os: macOS-14, xcode: '15.4' } @@ -161,10 +161,10 @@ stages: timeoutInMinutes: 120 strategy: matrix: - VS_2019: { B2_TOOLSET: msvc-14.2, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2019 } - VS_2019_strict: { B2_TOOLSET: msvc-14.2, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2019, B2_CXXFLAGS: -permissive- } - VS_2022: { B2_TOOLSET: msvc-14.3, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2022 } - VS_2022_strict: { B2_TOOLSET: msvc-14.3, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2022, B2_CXXFLAGS: -permissive- } + VS_2022: { B2_TOOLSET: msvc-14.3, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2022 } + VS_2022_strict: { B2_TOOLSET: msvc-14.3, B2_CXXSTD: '14,17,20', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2022, B2_CXXFLAGS: -permissive- } + VS_2026: { B2_TOOLSET: msvc-14.5, B2_CXXSTD: '14,17,20,latest', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2025-vs2026 } + VS_2026_struct: { B2_TOOLSET: msvc-14.5, B2_CXXSTD: '14,17,20,latest', B2_ADDRESS_MODEL: '32,64', VM_IMAGE: windows-2025-vs2026, B2_CXXFLAGS: -permissive- } pool: vmImage: $(VM_IMAGE) From 2fb63dd53b5000385b9269b402e35455b6b61cc6 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 10:20:38 +0200 Subject: [PATCH 4/9] Azure: Fix installation of sudo in (older) containers --- .azure-pipelines.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 1ac768da..7963b0ef 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -105,8 +105,6 @@ stages: ${{ if item.container }}: container: image: ${{ item.container }} - # Workaround for missing sudo: https://github.com/microsoft/azure-pipelines-agent/issues/2043 - options: --name ci-container -v /usr/bin/docker:/tmp/docker:ro variables: B2_COMPILER: ${{ item.compiler }} B2_CXXSTD: ${{ item.cxxstd }} @@ -123,10 +121,13 @@ stages: ${{var.Key}}: ${{var.Value}} steps: - ${{ if item.container }}: + # Workaround for missing sudo: https://github.com/microsoft/azure-pipelines-agent/issues/2043 + - bash: | + /usr/bin/docker exec -u0 "$AGENT_CONTAINERID" /bin/sh -c \ + "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::='--force-confold' -y install sudo software-properties-common" + target: host - bash: | set -ex - /tmp/docker exec -t -u 0 ci-container \ - sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::='--force-confold' -y install sudo software-properties-common" # Need (newer) git sudo add-apt-repository ppa:git-core/ppa sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update From 14710c3dd665d7710d461cfc317c465c8268e9bb Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 11:20:53 +0200 Subject: [PATCH 5/9] Azure: Use Ubuntu 22.04 for GCC 9-12 --- .azure-pipelines.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 7963b0ef..d9370f1f 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -49,10 +49,11 @@ parameters: - { compiler: gcc-6, cxxstd: '11,14', os: ubuntu-latest, container: 'ubuntu:18.04' } - { compiler: gcc-7, cxxstd: '11,14,17', os: ubuntu-latest, container: 'ubuntu:20.04' } - { compiler: gcc-8, cxxstd: '14,17,2a', os: ubuntu-latest, container: 'ubuntu:20.04' } - - { compiler: gcc-9, cxxstd: '14,17,2a', os: ubuntu-latest, container: 'ubuntu:20.04' } - - { compiler: gcc-10, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } - - { compiler: gcc-11, cxxstd: '14,17,20', os: ubuntu-latest, container: 'ubuntu:20.04' } - - { compiler: gcc-13, cxxstd: '14,17,20', os: ubuntu-24.04 } + - { compiler: gcc-9, cxxstd: '14,17,2a', os: ubuntu-22.04 } + - { compiler: gcc-10, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: gcc-11, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: gcc-12, cxxstd: '14,17,20', os: ubuntu-22.04 } + - { compiler: gcc-13, cxxstd: '14,17,20,2b', os: ubuntu-24.04 } - { compiler: gcc-14, cxxstd: '14,17,20,23', os: ubuntu-24.04 } - { compiler: clang-3.5, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } - { compiler: clang-3.6, cxxstd: '11', os: ubuntu-latest, container: 'ubuntu:16.04' } From f6faba0b28492220bffe59d93f91c57d424f746e Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 11:21:24 +0200 Subject: [PATCH 6/9] Azure: Install libpython3-dev on Ubuntu 22.x libpython-dev was replaced by libpython2|3-dev --- .azure-pipelines.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index d9370f1f..ad1d21ef 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -129,10 +129,21 @@ stages: target: host - bash: | set -ex + osver=$(lsb_release -sr | cut -f1 -d.) + pkgs="g++ git" + # Ubuntu 22+ has only Python 3 in the repos + if [ -n "$osver" ] && [ "$osver" -ge "22" ]; then + pkgs+=" python-is-python3 libpython3-dev" + elif [ -n "$osver" ] && [ "$osver" -eq "20" ]; then + pkgs+=" python libpython2-dev" + else + pkgs+=" python libpython-dev" + fi + # Need (newer) git sudo add-apt-repository ppa:git-core/ppa sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update - sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT -y -q --no-install-suggests --no-install-recommends install g++ python libpython-dev git + sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT -y -q --no-install-suggests --no-install-recommends install $pkgs displayName: 'Install required sw for containers' - task: Cache@2 condition: eq(variables.B2_USE_CCACHE, '1') From 0f708929d08bcb1b9908e002fa36d0dc894cfb4e Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 15:32:55 +0200 Subject: [PATCH 7/9] Azure: Consistenly use `displayName` --- .azure-pipelines.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index ad1d21ef..3855615a 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -127,6 +127,7 @@ stages: /usr/bin/docker exec -u0 "$AGENT_CONTAINERID" /bin/sh -c \ "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::='--force-confold' -y install sudo software-properties-common" target: host + displayName: Install sudo in container - bash: | set -ex osver=$(lsb_release -sr | cut -f1 -d.) @@ -144,7 +145,8 @@ stages: sudo add-apt-repository ppa:git-core/ppa sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT -y -q --no-install-suggests --no-install-recommends install $pkgs - displayName: 'Install required sw for containers' + displayName: Install required SW for containers + - task: Cache@2 condition: eq(variables.B2_USE_CCACHE, '1') inputs: @@ -161,7 +163,7 @@ stages: [[ $(basename "$BUILD_REPOSITORY_NAME") = "boost-ci" ]] || cp -prf boost-ci-cloned/ci . rm -rf boost-ci-cloned source ci/azure-pipelines/install.sh - displayName: 'Install' + displayName: Setup build environment - bash: | set -ex echo "SELF=$SELF" @@ -169,6 +171,7 @@ stages: cd $BOOST_ROOT/libs/$SELF ci/azure-pipelines/build.sh + displayName: Build - job: Windows timeoutInMinutes: 120 @@ -188,6 +191,6 @@ stages: if "%BUILD_REPOSITORY_NAME%" == "%BUILD_REPOSITORY_NAME:boost-ci=%" xcopy /s /e /q /i /y boost-ci-cloned\ci .\ci rmdir /s /q boost-ci-cloned ci\azure-pipelines\install.bat - displayName: 'Install' + displayName: Install - script: ci\build.bat - displayName: 'Build' + displayName: Build From 3e2550f2f0fcdcd2955098d448058c3eeebce6b5 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 16:31:41 +0200 Subject: [PATCH 8/9] Azure: Install compiler package if no others specified Even when gcc-XX is installed we might still need to install g++-XX --- ci/azure-pipelines/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/azure-pipelines/install.sh b/ci/azure-pipelines/install.sh index b44865ea..8b180832 100755 --- a/ci/azure-pipelines/install.sh +++ b/ci/azure-pipelines/install.sh @@ -40,8 +40,8 @@ if [ -z "$B2_COMPILER" ]; then fi if [ "$AGENT_OS" != "Darwin" ]; then - # If no package set install at least the compiler if not already found - if [[ -z "$PACKAGES" ]] && ! command -v "$B2_COMPILER"; then + # If no package set install at least the compiler + if [[ -z "$PACKAGES" ]]; then PACKAGES="$(get_compiler_package "$B2_COMPILER")" fi From 5cb9d77fbd28a3d8268c140c4109fffff5c649c4 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Wed, 6 May 2026 17:02:56 +0200 Subject: [PATCH 9/9] Azure: Use Clang-17 in container In C++23 mode it conflicts with the GCC 14 stdlib installed in the base image. --- .azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 3855615a..b091b822 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -72,7 +72,7 @@ parameters: - { compiler: clang-13, cxxstd: '14,17,20', os: ubuntu-22.04 } - { compiler: clang-14, cxxstd: '14,17,20', os: ubuntu-22.04 } - { compiler: clang-16, cxxstd: '14,17,20,23', os: ubuntu-24.04 } - - { compiler: clang-17, cxxstd: '14,17,20,23', os: ubuntu-24.04 } + - { compiler: clang-17, cxxstd: '14,17,20,23', os: ubuntu-latest, container: 'ubuntu:24.04' } - { compiler: clang-18, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } - { compiler: clang-19, cxxstd: '14,17,20,23,2c', os: ubuntu-24.04 } - { name: Linux_clang_6_libcxx,