Skip to content

Commit 29d1105

Browse files
authored
Merge pull request #83 from bemanproject/testing-container
Use Testing Container
2 parents 0b5bfc5 + 065178f commit 29d1105

File tree

1 file changed

+24
-61
lines changed

1 file changed

+24
-61
lines changed

.github/workflows/ci_tests.yml

Lines changed: 24 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,16 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
presets:
19-
- preset: "gcc-debug"
20-
platform: "ubuntu-latest"
21-
- preset: "gcc-release"
22-
platform: "ubuntu-latest"
23-
name: "Preset: ${{ matrix.presets.preset }} on ${{ matrix.presets.platform }}"
24-
runs-on: ${{ matrix.presets.platform }}
19+
- preset: gcc-debug
20+
tag: "gcc:14"
21+
- preset: gcc-release
22+
tag: "gcc:14"
23+
name: "Preset: ${{ matrix.presets.preset }}"
24+
runs-on: ubuntu-latest
25+
container:
26+
image: ghcr.io/bemanproject/testingcontainers-${{ matrix.presets.tag }}
2527
steps:
2628
- uses: actions/checkout@v4
27-
- name: Setup build environment
28-
uses: lukka/get-cmake@latest
29-
with:
30-
cmakeVersion: "~3.25.0"
31-
ninjaVersion: "^1.11.1"
3229
- name: Setup MSVC
3330
if: startsWith(matrix.presets.platform, 'windows')
3431
uses: TheMrMilchmann/setup-msvc-dev@v3
@@ -41,12 +38,13 @@ jobs:
4138
strategy:
4239
fail-fast: false
4340
matrix:
44-
platform: [ubuntu-24.04]
4541
compiler:
4642
- cpp: g++
4743
c: gcc
44+
tag: "gcc:14"
4845
- cpp: clang++
4946
c: clang
47+
tag: "clang:20"
5048
cpp_version: [20, 23]
5149
cmake_args:
5250
- description: "Default"
@@ -60,42 +58,23 @@ jobs:
6058
compiler:
6159
cpp: g++
6260
c: gcc
61+
tag: "gcc:14"
6362
cpp_version: 20
6463
cmake_args:
6564
description: "Dynamic"
6665
cmake_args: "-DBUILD_SHARED_LIBS=on"
6766

6867
name: "Build & Test: ${{ matrix.compiler.c }} ${{ matrix.cpp_version }} ${{ matrix.cmake_args.description }}"
69-
runs-on: ${{ matrix.platform }}
68+
runs-on: ubuntu-latest
69+
container:
70+
image: ghcr.io/bemanproject/testingcontainers-${{ matrix.compiler.tag }}
7071
steps:
7172
- uses: actions/checkout@v4
72-
- name: Install Ninja
73-
uses: lukka/get-cmake@latest
74-
with:
75-
cmakeVersion: "~3.25.0"
76-
ninjaVersion: "^1.11.1"
77-
- name: Install latest compiler
78-
run: |
79-
if [ "${{ matrix.compiler.cpp}}" == "g++" ]; then
80-
# Install gcc-14
81-
sudo apt-get update
82-
sudo apt-get install -y gcc-14 g++-14
83-
84-
sudo rm /usr/bin/gcc
85-
sudo ln -s /usr/bin/gcc-14 /usr/bin/gcc
86-
87-
sudo rm /usr/bin/g++
88-
sudo ln -s /usr/bin/g++-14 /usr/bin/g++
89-
else
90-
# Install llvm
91-
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
92-
fi
9373
- name: Print installed software
9474
run: |
95-
clang++ --version
96-
g++ --version
9775
cmake --version
9876
ninja --version
77+
ctest --version
9978
- name: Configure CMake
10079
run: |
10180
cmake -B build -S . -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }} ${{ matrix.cmake_args.args }}
@@ -126,44 +105,28 @@ jobs:
126105
fail-fast: false
127106
matrix:
128107
compilers:
129-
- class: gnu
108+
- class: gcc
130109
version: 14
131-
- class: gnu
110+
- class: gcc
132111
version: 13
133-
- class: gnu
112+
- class: gcc
134113
version: 12
135-
- class: llvm
114+
- class: clang
136115
version: 20
137-
- class: llvm
116+
- class: clang
138117
version: 19
139-
- class: llvm
118+
- class: clang
140119
version: 18
141-
- class: llvm
120+
- class: clang
142121
version: 17
143122
container:
144-
image: ghcr.io/wusatosi/cpp-docker:${{ matrix.compilers.class }}-${{ matrix.compilers.version }}
123+
image: ghcr.io/bemanproject/testingcontainers-${{ matrix.compilers.class }}:${{ matrix.compilers.version }}
145124
name: "Compiler: ${{ matrix.compilers.class }} ${{ matrix.compilers.version }}"
146125
steps:
147126
- uses: actions/checkout@v4
148-
- name: Install Compiler
149-
id: install-compiler
150-
run: |
151-
if [ "${{ matrix.compilers.class }}" = "gnu" ]; then
152-
CC=gcc-${{ matrix.compilers.version }}
153-
CXX=g++-${{ matrix.compilers.version }}
154-
else
155-
CC=clang-${{ matrix.compilers.version }}
156-
CXX=clang++-${{ matrix.compilers.version }}
157-
fi
158-
159-
echo "CC=$CC" >> "$GITHUB_OUTPUT"
160-
echo "CXX=$CXX" >> "$GITHUB_OUTPUT"
161127
- name: Configure CMake
162-
run: |
163-
cmake -B build -S . -DCMAKE_CXX_STANDARD=20
128+
run: cmake -B build -S . -DCMAKE_CXX_STANDARD=20
164129
env:
165-
CC: ${{ steps.install-compiler.outputs.CC }}
166-
CXX: ${{ steps.install-compiler.outputs.CXX }}
167130
CMAKE_GENERATOR: "Ninja Multi-Config"
168131
- name: Build Debug
169132
run: |

0 commit comments

Comments
 (0)