diff --git a/.drone.jsonnet b/.drone.jsonnet index e64432f..2ecb8ae 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -99,13 +99,13 @@ local windows_pipeline(name, image, environment, arch = "amd64") = linux_pipeline( "Linux 14.04 GCC 4.8*", "cppalliance/droneubuntu1404:1", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11' }, ), linux_pipeline( "Linux 14.04 GCC 4.9", "cppalliance/droneubuntu1404:1", - { TOOLSET: 'gcc', COMPILER: 'g++-4.9', CXXSTD: '03,11' }, + { TOOLSET: 'gcc', COMPILER: 'g++-4.9', CXXSTD: '11' }, "g++-4.9", [ "ppa:ubuntu-toolchain-r/test" ], ), @@ -113,94 +113,94 @@ local windows_pipeline(name, image, environment, arch = "amd64") = linux_pipeline( "Linux 16.04 GCC 5*", "cppalliance/droneubuntu1604:1", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11,14' }, ), linux_pipeline( "Linux 18.04 GCC 6", "cppalliance/droneubuntu1804:1", - { TOOLSET: 'gcc', COMPILER: 'g++-6', CXXSTD: '03,11,14' }, + { TOOLSET: 'gcc', COMPILER: 'g++-6', CXXSTD: '11,14' }, "g++-6", ), linux_pipeline( "Linux 18.04 GCC 7* 32/64", "cppalliance/droneubuntu1804:1", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14,17', ADDRMD: '32,64' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11,14,17', ADDRMD: '32,64' }, ), linux_pipeline( "Linux 18.04 GCC 8", "cppalliance/droneubuntu1804:1", - { TOOLSET: 'gcc', COMPILER: 'g++-8', CXXSTD: '03,11,14,17' }, + { TOOLSET: 'gcc', COMPILER: 'g++-8', CXXSTD: '11,14,17' }, "g++-8", ), linux_pipeline( "Linux 20.04 GCC 9* 32", "cppalliance/droneubuntu2004:1", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14,17,2a', ADDRMD: '32' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11,14,17,2a', ADDRMD: '32' }, ), linux_pipeline( "Linux 20.04 GCC 9* 64", "cppalliance/droneubuntu2004:1", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14,17,2a', ADDRMD: '64' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11,14,17,2a', ADDRMD: '64' }, ), linux_pipeline( "Linux 20.04 GCC 9 ARM64 32/64", "cppalliance/droneubuntu2004:multiarch", - { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14,17,2a', ADDRMD: '32,64' }, + { TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '11,14,17,2a', ADDRMD: '32,64' }, arch="arm64", ), linux_pipeline( "Linux 20.04 GCC 10 32 ASAN", "cppalliance/droneubuntu2004:1", - { TOOLSET: 'gcc', COMPILER: 'g++-10', CXXSTD: '03,11,14,17,20', ADDRMD: '32' } + asan, + { TOOLSET: 'gcc', COMPILER: 'g++-10', CXXSTD: '11,14,17,20', ADDRMD: '32' } + asan, "g++-10-multilib", ), linux_pipeline( "Linux 20.04 GCC 10 64 ASAN", "cppalliance/droneubuntu2004:1", - { TOOLSET: 'gcc', COMPILER: 'g++-10', CXXSTD: '03,11,14,17,20', ADDRMD: '64' } + asan, + { TOOLSET: 'gcc', COMPILER: 'g++-10', CXXSTD: '11,14,17,20', ADDRMD: '64' } + asan, "g++-10-multilib", ), linux_pipeline( "Linux 16.04 Clang 3.5", "cppalliance/droneubuntu1604:1", - { TOOLSET: 'clang', COMPILER: 'clang++-3.5', CXXSTD: '03,11' }, + { TOOLSET: 'clang', COMPILER: 'clang++-3.5', CXXSTD: '11' }, "clang-3.5", ), linux_pipeline( "Linux 16.04 Clang 3.6", "cppalliance/droneubuntu1604:1", - { TOOLSET: 'clang', COMPILER: 'clang++-3.6', CXXSTD: '03,11,14' }, + { TOOLSET: 'clang', COMPILER: 'clang++-3.6', CXXSTD: '11,14' }, "clang-3.6", ), linux_pipeline( "Linux 16.04 Clang 3.7", "cppalliance/droneubuntu1604:1", - { TOOLSET: 'clang', COMPILER: 'clang++-3.7', CXXSTD: '03,11,14' }, + { TOOLSET: 'clang', COMPILER: 'clang++-3.7', CXXSTD: '11,14' }, "clang-3.7", ), linux_pipeline( "Linux 16.04 Clang 3.8", "cppalliance/droneubuntu1604:1", - { TOOLSET: 'clang', COMPILER: 'clang++-3.8', CXXSTD: '03,11,14' }, + { TOOLSET: 'clang', COMPILER: 'clang++-3.8', CXXSTD: '11,14' }, "clang-3.8", ), linux_pipeline( "Linux 20.04 Clang 13", "cppalliance/droneubuntu2004:1", - { TOOLSET: 'clang', COMPILER: 'clang++-13', CXXSTD: '03,11,14,17,20' }, + { TOOLSET: 'clang', COMPILER: 'clang++-13', CXXSTD: '11,14,17,20' }, "clang-13", ["deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main"], ), @@ -208,25 +208,25 @@ local windows_pipeline(name, image, environment, arch = "amd64") = linux_pipeline( "Linux 22.04 Clang 14 UBSAN", "cppalliance/droneubuntu2204:1", - { TOOLSET: 'clang', COMPILER: 'clang++-14', CXXSTD: '03,11,14,17,20' } + ubsan, + { TOOLSET: 'clang', COMPILER: 'clang++-14', CXXSTD: '11,14,17,20' } + ubsan, "clang-14", ), linux_pipeline( "Linux 22.04 Clang 14 ASAN", "cppalliance/droneubuntu2204:1", - { TOOLSET: 'clang', COMPILER: 'clang++-14', CXXSTD: '03,11,14,17,20' } + asan, + { TOOLSET: 'clang', COMPILER: 'clang++-14', CXXSTD: '11,14,17,20' } + asan, "clang-14", ), macos_pipeline( "MacOS 10.15 Xcode 12.2 UBSAN", - { TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '03,11,14,1z' } + ubsan, + { TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '11,14,1z' } + ubsan, ), macos_pipeline( "MacOS 10.15 Xcode 12.2 ASAN", - { TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '03,11,14,1z' } + asan, + { TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '11,14,1z' } + asan, ), windows_pipeline( diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc97a8f..89ffaee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,181 +18,180 @@ jobs: matrix: include: - toolset: gcc-4.8 - cxxstd: "03,11" + cxxstd: "11" os: ubuntu-latest container: ubuntu:18.04 install: g++-4.8-multilib address-model: 32,64 - toolset: gcc-5 - cxxstd: "03,11,14,1z" + cxxstd: "11,14,1z" os: ubuntu-latest container: ubuntu:18.04 install: g++-5-multilib address-model: 32,64 - toolset: gcc-6 - cxxstd: "03,11,14,1z" + cxxstd: "11,14,1z" os: ubuntu-latest container: ubuntu:18.04 install: g++-6-multilib address-model: 32,64 - toolset: gcc-7 - cxxstd: "03,11,14,17" + cxxstd: "11,14,17" os: ubuntu-latest container: ubuntu:18.04 install: g++-7-multilib address-model: 32,64 - toolset: gcc-8 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 install: g++-8-multilib address-model: 32,64 - toolset: gcc-9 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 install: g++-9-multilib address-model: 32,64 - toolset: gcc-10 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 install: g++-10-multilib address-model: 32,64 - toolset: gcc-11 - cxxstd: "03,11,14,17,20" + cxxstd: "11,14,17,20" os: ubuntu-22.04 install: g++-11-multilib address-model: 32,64 - toolset: gcc-12 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" os: ubuntu-22.04 install: g++-12-multilib address-model: 32,64 - toolset: gcc-13 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-latest - container: ubuntu:23.04 + cxxstd: "11,14,17,20,2b" + os: ubuntu-24.04 install: g++-13-multilib address-model: 32,64 - toolset: gcc-14 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" os: ubuntu-latest container: ubuntu:24.04 install: g++-14-multilib address-model: 32,64 - toolset: clang compiler: clang++-3.9 - cxxstd: "03,11,14" + cxxstd: "11,14" os: ubuntu-latest container: ubuntu:18.04 install: clang-3.9 - toolset: clang compiler: clang++-4.0 - cxxstd: "03,11,14" + cxxstd: "11,14" os: ubuntu-latest container: ubuntu:18.04 install: clang-4.0 - toolset: clang compiler: clang++-5.0 - cxxstd: "03,11,14,1z" + cxxstd: "11,14,1z" os: ubuntu-latest container: ubuntu:18.04 install: clang-5.0 - toolset: clang compiler: clang++-6.0 - cxxstd: "03,11,14,17" + cxxstd: "11,14,17" os: ubuntu-20.04 install: clang-6.0 - toolset: clang compiler: clang++-7 - cxxstd: "03,11,14,17" + cxxstd: "11,14,17" os: ubuntu-20.04 install: clang-7 - toolset: clang compiler: clang++-8 - cxxstd: "03,11,14,17" + cxxstd: "11,14,17" os: ubuntu-20.04 install: clang-8 - toolset: clang compiler: clang++-9 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 install: clang-9 - toolset: clang compiler: clang++-10 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 - toolset: clang compiler: clang++-11 - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" os: ubuntu-20.04 - toolset: clang compiler: clang++-12 - cxxstd: "03,11,14,17,20" + cxxstd: "11,14,17,20" os: ubuntu-20.04 - toolset: clang compiler: clang++-13 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" container: ubuntu:22.04 os: ubuntu-latest install: clang-13 - toolset: clang compiler: clang++-14 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" container: ubuntu:22.04 os: ubuntu-latest install: clang-14 - toolset: clang compiler: clang++-15 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" container: ubuntu:22.04 os: ubuntu-latest install: clang-15 - toolset: clang compiler: clang++-16 - cxxstd: "03,11,14,17,20,2b" - container: ubuntu:23.04 - os: ubuntu-latest + cxxstd: "11,14,17,20,2b" + os: ubuntu-24.04 install: clang-16 - toolset: clang compiler: clang++-17 - cxxstd: "03,11,14,17,20,2b" - container: ubuntu:23.10 - os: ubuntu-latest + # https://github.com/llvm/llvm-project/issues/59827: disabled 2b/23 for clang-17 with libstdc++13 in 24.04 + cxxstd: "11,14,17,20" + os: ubuntu-24.04 install: clang-17 - toolset: clang compiler: clang++-18 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" container: ubuntu:24.04 os: ubuntu-latest install: clang-18 - toolset: clang - cxxstd: "03,11,14,17,20,2b" - os: macos-12 - - toolset: clang - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" os: macos-13 - toolset: clang - cxxstd: "03,11,14,17,20,2b" + cxxstd: "11,14,17,20,2b" os: macos-14 runs-on: ${{matrix.os}} - container: ${{matrix.container}} + container: + image: ${{matrix.container}} + volumes: + - /node20217:/node20217:rw,rshared + - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }} defaults: run: shell: bash steps: - - name: Enable Node 16 - run: | - echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV - - - uses: actions/checkout@v3 - - name: Setup container environment if: matrix.container run: | apt-get update - apt-get -y install sudo python3 git g++ + apt-get -y install sudo python3 git g++ curl xz-utils + if [[ "${{matrix.container}}" == "ubuntu:1"* ]]; then + # Node 20 doesn't work with Ubuntu 16/18 glibc: https://github.com/actions/checkout/issues/1590 + curl -sL https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz | tar -xJ --strip-components 1 -C /node20217 + fi + + - uses: actions/checkout@v4 - name: Install packages if: matrix.install @@ -260,7 +259,7 @@ jobs: addrmd: 32,64 os: windows-2022 - toolset: gcc - cxxstd: "03,11,14,17,2a" + cxxstd: "11,14,17,2a" addrmd: 64 os: windows-2019