@@ -120,6 +120,65 @@ jobs:
120120 - name : Test Debug
121121 run : ctest --test-dir build --build-config Debug
122122
123+ compiler-test :
124+ runs-on : ubuntu-latest
125+ strategy :
126+ fail-fast : false
127+ matrix :
128+ compilers :
129+ - class : gnu
130+ version : 14
131+ - class : gnu
132+ version : 13
133+ - class : gnu
134+ version : 12
135+ - class : llvm
136+ version : 20
137+ - class : llvm
138+ version : 19
139+ - class : llvm
140+ version : 18
141+ - class : llvm
142+ version : 17
143+ container :
144+ image : ghcr.io/wusatosi/cpp-docker:${{ compilers.class }}-${{ compilers.version }}
145+ name : " Compiler: ${{ matrix.compilers.class }} ${{ matrix.compilers.version }}"
146+ steps :
147+ - uses : actions/checkout@v4
148+ - name : Setup build environment
149+ uses : lukka/get-cmake@latest
150+ with :
151+ cmakeVersion : " ~3.25.0"
152+ ninjaVersion : " ^1.11.1"
153+ - name : Install Compiler
154+ id : install-compiler
155+ run : |
156+ if [ "${{ matrix.compilers.class }}" = "GNU" ]; then
157+ CC=gcc-${{ matrix.compilers.version }}
158+ CXX=g++-${{ matrix.compilers.version }}
159+ else
160+ CC=clang-${{ matrix.compilers.version }}
161+ CXX=clang++-${{ matrix.compilers.version }}
162+ fi
163+
164+ echo "CC=$CC" >> "$GITHUB_OUTPUT"
165+ echo "CXX=$CXX" >> "$GITHUB_OUTPUT"
166+ - name : Configure CMake
167+ run : |
168+ cmake -B build -S . -DCMAKE_CXX_STANDARD=20
169+ env :
170+ CC : ${{ steps.install-compiler.outputs.CC }}
171+ CXX : ${{ steps.install-compiler.outputs.CXX }}
172+ CMAKE_GENERATOR : " Ninja Multi-Config"
173+ - name : Build Debug
174+ run : |
175+ cmake --build build --config Debug --verbose
176+ cmake --build build --config Debug --target all_verify_interface_header_sets
177+ cmake --install build --config Debug --prefix /opt/beman.exemplar
178+ find /opt/beman.exemplar -type f
179+ - name : Test Debug
180+ run : ctest --test-dir build --build-config Debug
181+
123182 create-issue-when-fault :
124183 runs-on : ubuntu-latest
125184 needs : [test]
0 commit comments