diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index c8534c2c..b091b822 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -43,47 +43,52 @@ 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-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' } + - { 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-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, - 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,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 @@ -101,8 +106,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 }} @@ -119,15 +122,31 @@ 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 + displayName: Install sudo in container - 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" + 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 - displayName: 'Install required sw for containers' + 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') inputs: @@ -144,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" @@ -152,15 +171,16 @@ stages: cd $BOOST_ROOT/libs/$SELF ci/azure-pipelines/build.sh + displayName: Build - job: Windows 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) @@ -171,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 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'), 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