@@ -13,75 +13,25 @@ jobs:
1313 build :
1414 name : ${{ matrix.config.name }}
1515 runs-on : ${{ matrix.config.os }}
16+ container :
17+ image : ghcr.io/bemanproject/testing-images:test-${{ matrix.config.tag }}
1618 strategy :
1719 fail-fast : false
1820 matrix :
1921 config :
20- - {name: "Ubuntu Clang 21", os: ubuntu-24.04, toolchain: "clang-21", clang_version: 21, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
21- - {name: "Ubuntu Clang 20", os: ubuntu-24.04, toolchain: "clang-20", clang_version: 20, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
22+ - {name: "Ubuntu Clang 21", tag: "llvm-21", os: ubuntu-24.04, toolchain: "clang-21", clang_version: 21, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
23+ - {name: "Ubuntu Clang 20", tag: "llvm-20", os: ubuntu-24.04, toolchain: "clang-20", clang_version: 20, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
2224 # Note: clang-19 + Asan setup causes errors on some platforms. Temporary skip some checks via .asan_options.
23- - {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"}
24- - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
25- - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
26- - {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan;Gcov\" ", coverage: true}
27- - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
28- - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
25+ - {name: "Ubuntu Clang 19", tag: "llvm-19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"}
26+ - {name: "Ubuntu Clang 18", tag: "llvm-18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
27+ - {name: "Ubuntu Clang 17", tag: "llvm-17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
28+ - {name: "Ubuntu GCC 14", tag: "gnu-14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan;Gcov\" ", coverage: true}
29+ - {name: "Ubuntu GCC 13", tag: "gnu-13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
30+ - {name: "Ubuntu GCC 12", tag: "gnu-12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
2931 steps :
3032 - uses : actions/checkout@v3
3133 with :
3234 submodules : ' true'
33- - uses : seanmiddleditch/gha-setup-ninja@master
34- - name : Activate verbose shell
35- run : set -x
36- - name : Install LLVM+Clang
37- if : startsWith(matrix.config.name, 'Ubuntu Clang')
38- run : |
39- set -x
40- cat /etc/lsb-release
41- # Remove existing Clang installations.
42- sudo apt-get remove \
43- clang-${{matrix.config.installed_clang_version}} \
44- clang++-${{matrix.config.installed_clang_version}} \
45- clangd-${{matrix.config.installed_clang_version}} \
46- clang-tidy-${{matrix.config.installed_clang_version}} \
47- clang-format-${{matrix.config.installed_clang_version}} \
48- clang-tools-${{matrix.config.installed_clang_version}} \
49- llvm-${{matrix.config.installed_clang_version}}-dev \
50- lld-${{matrix.config.installed_clang_version}} \
51- lldb-${{matrix.config.installed_clang_version}} \
52- llvm-${{matrix.config.installed_clang_version}}-tools \
53- libc++-${{matrix.config.installed_clang_version}}-dev \
54- libc++abi-${{matrix.config.installed_clang_version}}-dev \
55- libclang-common-${{matrix.config.installed_clang_version}}-dev \
56- libclang-${{matrix.config.installed_clang_version}}-dev \
57- libclang-cpp${{matrix.config.installed_clang_version}}-dev \
58- libomp-${{matrix.config.installed_clang_version}}-dev \
59- libunwind-${{matrix.config.installed_clang_version}}-dev \
60- libc++-dev libc++1 libc++abi-dev libc++abi1
61- # Install LLVM+Clang.
62- CLANG_VERSION=$(echo ${{matrix.config.toolchain}} | cut -d '-' -f2)
63- wget https://apt.llvm.org/llvm.sh
64- chmod +x llvm.sh
65- sudo ./llvm.sh ${CLANG_VERSION} all
66- # Link Clang libraries (if not done by llvm.sh - some links are already set).
67- sudo ln -fs /usr/lib/llvm-${CLANG_VERSION}/lib/lib* /usr/lib/x86_64-linux-gnu/ || true
68- # If Clang 17, install a newer version of libc++ and libc++abi.
69- [[ ${CLANG_VERSION} = 17 ]] && sudo apt-get install libc++-dev libc++1 libc++abi-dev libc++abi1
70- find /usr/lib/x86_64-linux-gnu/ -name libc++.so* || true
71- clang++-${CLANG_VERSION} --version
72- - name : Install GCC
73- if : startsWith(matrix.config.name, 'Ubuntu GCC')
74- run : |
75- set -x
76- # Remove existing GCC installations.
77- sudo apt-get remove gcc-13 g++-13 gcc-14 g++-14 gcc g++
78- sudo apt update
79- # Install GCC.
80- GCC_VERSION=$(echo ${{matrix.config.toolchain}} | cut -d '-' -f2)
81- echo "GCC_VERSION=$GCC_VERSION"
82- sudo apt-get install g++-${GCC_VERSION} gcc-${GCC_VERSION}
83- find /usr/lib/x86_64-linux-gnu/ -name libstdc++.so*
84- g++-${GCC_VERSION} --version
8535 - name : Install Gcovr
8636 if : matrix.config.coverage
8737 run : |
0 commit comments