Skip to content

Commit 49c6b38

Browse files
authored
Merge pull request #121 from bemanproject/testing-container
Use generalized testing container
2 parents 069cd74 + d8b13f9 commit 49c6b38

File tree

1 file changed

+17
-60
lines changed

1 file changed

+17
-60
lines changed

.github/workflows/ci.yml

Lines changed: 17 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -12,81 +12,38 @@ on:
1212
jobs:
1313
build:
1414
name: ${{ matrix.config.name }}
15-
runs-on: ${{ matrix.config.os }}
15+
runs-on: ubuntu-24.04
16+
container:
17+
image: ghcr.io/bemanproject/testingcontainers-${{ 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: "clang:21", toolchain: "clang-21", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
23+
- {name: "Ubuntu Clang 20", tag: "clang:20", toolchain: "clang-20", 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: "clang:19", toolchain: "clang-19", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"}
26+
- {name: "Ubuntu Clang 18", tag: "clang:18", toolchain: "clang-18", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
27+
- {name: "Ubuntu Clang 17", tag: "clang:17", toolchain: "clang-17", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
28+
- {name: "Ubuntu GCC 14", tag: "gcc:14", toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan;Gcov\" ", coverage: true}
29+
- {name: "Ubuntu GCC 13", tag: "gcc:13", toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
30+
- {name: "Ubuntu GCC 12", tag: "gcc:12", 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')
35+
# If Clang 17, install a newer version of libc++ and libc++abi.
36+
- name: Install libc++
37+
if: matrix.config.tag == 'clang:17'
3838
run: |
3939
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
40+
sudo apt-get install -y libc++-dev libc++1 libc++abi-dev libc++abi1
7041
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
8542
- name: Install Gcovr
8643
if: matrix.config.coverage
8744
run: |
8845
set -x
89-
sudo apt-get install gcovr
46+
sudo apt-get install -y gcovr
9047
- name: CMake Configure
9148
run: |
9249
set -x
@@ -142,7 +99,7 @@ jobs:
14299
if: matrix.config.coverage
143100
uses: coverallsapp/github-action@main
144101
with:
145-
file: ${{runner.workspace}}/optional/.build/coverage.json
102+
file: .build/coverage.json
146103
github-token: ${{ secrets.GITHUB_TOKEN }}
147104

148105
create-issue-when-fault:

0 commit comments

Comments
 (0)