diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bff70d2..cfe21e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,10 @@ jobs: fail-fast: false matrix: include: + #------------------ # Linux, gcc + #------------------ + # Linux, gcc-4.6 - toolset: gcc-4.6 cxxstd: "03,0x" address-model: 32,64 @@ -33,6 +36,7 @@ jobs: - g++-4.6-multilib sources: - "ppa:ubuntu-toolchain-r/test" + # Linux, gcc-4.7 - toolset: gcc-4.7 cxxstd: "03,11" address-model: 32,64 @@ -40,6 +44,7 @@ jobs: container: ubuntu:16.04 install: - g++-4.7-multilib + # Linux, gcc-4.8 - toolset: gcc-4.8 cxxstd: "03,11" address-model: 32,64 @@ -47,6 +52,7 @@ jobs: container: ubuntu:18.04 install: - g++-4.8-multilib + # Linux, gcc-4.9 - toolset: gcc-4.9 cxxstd: "03,11" address-model: 32,64 @@ -54,6 +60,7 @@ jobs: container: ubuntu:16.04 install: - g++-4.9-multilib + # Linux, gcc-5 - toolset: gcc-5 cxxstd: "03,11,14,1z" address-model: 32,64 @@ -61,6 +68,7 @@ jobs: container: ubuntu:16.04 install: - g++-5-multilib + # Linux, gcc-6 - toolset: gcc-6 cxxstd: "03,11,14,1z" address-model: 32,64 @@ -68,6 +76,7 @@ jobs: container: ubuntu:18.04 install: - g++-6-multilib + # Linux, gcc-7 - toolset: gcc-7 cxxstd: "03,11,14,17" address-model: 32,64 @@ -75,6 +84,7 @@ jobs: container: ubuntu:18.04 install: - g++-7-multilib + # Linux, gcc-8 - toolset: gcc-8 cxxstd: "03,11,14,17,2a" address-model: 32,64 @@ -82,39 +92,58 @@ jobs: container: ubuntu:18.04 install: - g++-8-multilib + # Linux, gcc-9 - toolset: gcc-9 cxxstd: "03,11,14,17,2a" address-model: 32,64 - os: ubuntu-20.04 + os: ubuntu-latest + container: ubuntu:20.04 install: - g++-9-multilib + # Linux, gcc-10 - toolset: gcc-10 cxxstd: "03,11,14,17,20" address-model: 32,64 - os: ubuntu-20.04 + os: ubuntu-latest + container: ubuntu:20.04 install: - g++-10-multilib + # Linux, gcc-11 - toolset: gcc-11 cxxstd: "03,11,14,17,20,23" address-model: 32,64 - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - g++-11-multilib + # Linux, gcc-12 - toolset: gcc-12 cxxstd: "03,11,14,17,20,23" address-model: 32,64 - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - g++-12-multilib + # Linux, gcc-13 + - toolset: gcc-13 + cxxstd: "11,14,17,20,2b" + os: ubuntu-latest + container: ubuntu:23.04 + install: g++-13-multilib + address-model: 32,64 + # Linux, gcc-12 UBSAN - name: UBSAN toolset: gcc-12 cxxstd: "03,11,14,17,20,23" ubsan: 1 - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - g++-12 - + #------------------ # Linux, clang + #------------------ + # Linux, clang-3.5 - toolset: clang compiler: clang++-3.5 cxxstd: "03,11" @@ -122,6 +151,7 @@ jobs: container: ubuntu:16.04 install: - clang-3.5 + # Linux, clang-3.6 - toolset: clang compiler: clang++-3.6 cxxstd: "03,11,14" @@ -129,6 +159,7 @@ jobs: container: ubuntu:16.04 install: - clang-3.6 + # Linux, clang-3.7 - toolset: clang compiler: clang++-3.7 cxxstd: "03,11,14" @@ -136,6 +167,7 @@ jobs: container: ubuntu:16.04 install: - clang-3.7 + # Linux, clang-3.8 - toolset: clang compiler: clang++-3.8 cxxstd: "03,11,14" @@ -143,6 +175,7 @@ jobs: container: ubuntu:16.04 install: - clang-3.8 + # Linux, clang-3.9 - toolset: clang compiler: clang++-3.9 cxxstd: "03,11,14" @@ -150,6 +183,7 @@ jobs: container: ubuntu:18.04 install: - clang-3.9 + # Linux, clang-4.0 - toolset: clang compiler: clang++-4.0 cxxstd: "03,11,14" @@ -157,6 +191,7 @@ jobs: container: ubuntu:18.04 install: - clang-4.0 + # Linux, clang-5.0 - toolset: clang compiler: clang++-5.0 cxxstd: "03,11,14,1z" @@ -164,6 +199,7 @@ jobs: container: ubuntu:18.04 install: - clang-5.0 + # Linux, clang-6.0 - toolset: clang compiler: clang++-6.0 cxxstd: "03,11,14,17" @@ -171,6 +207,7 @@ jobs: container: ubuntu:18.04 install: - clang-6.0 + # Linux, clang-7 - toolset: clang compiler: clang++-7 cxxstd: "03,11,14,17" @@ -178,6 +215,7 @@ jobs: container: ubuntu:18.04 install: - clang-7 + # Linux, clang-8 # Note: clang-8 does not fully support C++20, so it is not compatible with libstdc++-8 in this mode - toolset: clang compiler: clang++-8 @@ -188,52 +226,76 @@ jobs: - clang-8 - g++-7 gcc_toolchain: 7 + # Linux, clang-9 - toolset: clang compiler: clang++-9 cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 + os: ubuntu-latest + container: ubuntu:20.04 install: - clang-9 + # Linux, clang-10 - toolset: clang compiler: clang++-10 cxxstd: "03,11,14,17,20" - os: ubuntu-20.04 + os: ubuntu-latest + container: ubuntu:20.04 install: - clang-10 + # Linux, clang-11 - toolset: clang compiler: clang++-11 cxxstd: "03,11,14,17,20" - os: ubuntu-22.04 + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-11 + # Linux, clang-12 - toolset: clang compiler: clang++-12 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 + cxxstd: "03,11,14,17,20" + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-12 + # Linux, clang-13 - toolset: clang compiler: clang++-13 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 + cxxstd: "03,11,14,17,20" + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-13 + # Linux, clang-14 - toolset: clang compiler: clang++-14 - cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 + cxxstd: "03,11,14,17,20" + os: ubuntu-latest + container: ubuntu:22.04 install: - clang-14 + # Linux, clang-15 - toolset: clang compiler: clang++-15 + cxxstd: "03,11,14,17,20" + container: ubuntu:22.04 + os: ubuntu-latest + install: clang-15 + # Linux, clang-16 + - toolset: clang + compiler: clang++-16 cxxstd: "03,11,14,17,20,2b" - os: ubuntu-22.04 - install: - - clang-15 - sources: - - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" - source_keys: - - "https://apt.llvm.org/llvm-snapshot.gpg.key" + container: ubuntu:23.04 + os: ubuntu-latest + install: clang-16 + # Linux, clang-17 + - toolset: clang + compiler: clang++-17 + cxxstd: "03,11,14,17,20,2b" + container: ubuntu:23.10 + os: ubuntu-latest + install: clang-17 + # Linux, clang-15 libc++ - toolset: clang compiler: clang++-15 cxxstd: "03,11,14,17,20,2b" @@ -248,10 +310,11 @@ jobs: - "https://apt.llvm.org/llvm-snapshot.gpg.key" cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ + # Linux, clang-14 libc++, ubsan - name: UBSAN toolset: clang compiler: clang++-14 - cxxstd: "03,11,14,17,20,2b" + cxxstd: "03,11,14,17,20" cxxflags: -stdlib=libc++ linkflags: -stdlib=libc++ ubsan: 1 @@ -260,13 +323,21 @@ jobs: - clang-14 - libc++-14-dev - libc++abi-14-dev - + #------------------ + # MacOS, clang + #------------------ + # Macos 11, clang - toolset: clang cxxstd: "03,11,14,17,2a" os: macos-11 + # Macos 12, clang - toolset: clang - cxxstd: "03,11,14,17,2a" + cxxstd: "03,11,14,17,20,2b" os: macos-12 + # Macos 13, clang + - toolset: clang + cxxstd: "03,11,14,17,20,2b" + os: macos-13 timeout-minutes: 180 runs-on: ${{matrix.os}}