@@ -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