@@ -165,209 +165,64 @@ jobs:
165165 needs : format-taginfo-docs
166166 strategy :
167167 matrix :
168- include :
168+ config :
169+ # standard builds
170+ - { name: gcc-14, type: Release }
171+ - { name: gcc-13, type: Release }
172+ - { name: gcc-12, type: Release }
173+ - { name: clang-18, type: [Debug, Release] }
174+ - { name: clang-17, type: Release }
175+ - { name: clang-16, type: Release }
176+
177+ # specialized builds
169178 - name : gcc-13-debug-cov
170- continue-on-error : false
171- node : 20
172- runs-on : ubuntu-24.04
173- BUILD_TOOLS : ON
174- BUILD_TYPE : Debug
175- CCOMPILER : gcc-13
176- CUCUMBER_TIMEOUT : 20000
177- CXXCOMPILER : g++-13
178- ENABLE_COVERAGE : ON
179-
180- - name : clang-18-debug-asan-ubsan
181- continue-on-error : false
182- node : 20
183- runs-on : ubuntu-24.04
184- BUILD_TOOLS : ON
185- BUILD_TYPE : Debug
186- CCOMPILER : clang-18
187- CUCUMBER_TIMEOUT : 20000
188- CXXCOMPILER : clang++-18
189- ENABLE_SANITIZER : ON
190- TARGET_ARCH : x86_64-asan-ubsan
191- OSRM_CONNECTION_RETRIES : 10
192- OSRM_CONNECTION_EXP_BACKOFF_COEF : 1.5
193-
194- - name : clang-18-release
195- continue-on-error : false
196- node : 20
197- runs-on : ubuntu-24.04
198- BUILD_TOOLS : ON
199- BUILD_TYPE : Release
200- CCOMPILER : clang-18
201- CXXCOMPILER : clang++-18
202- CUCUMBER_TIMEOUT : 60000
203- ENABLE_LTO : OFF
204-
205- - name : clang-18-debug
206- continue-on-error : false
207- node : 18
208- runs-on : ubuntu-24.04
209- BUILD_TOOLS : ON
210- BUILD_TYPE : Debug
211- CCOMPILER : clang-18
212- CXXCOMPILER : clang++-18
213- CUCUMBER_TIMEOUT : 60000
214- ENABLE_LTO : OFF
215-
216- - name : clang-18-debug-clang-tidy
217- continue-on-error : false
218- node : 18
219- runs-on : ubuntu-24.04
220- BUILD_TOOLS : ON
221- BUILD_TYPE : Debug
222- CCOMPILER : clang-18
223- CXXCOMPILER : clang++-18
224- CUCUMBER_TIMEOUT : 60000
225- ENABLE_CLANG_TIDY : ON
226-
227-
228- - name : clang-17-release
229- continue-on-error : false
230- node : 18
231- runs-on : ubuntu-24.04
232- BUILD_TOOLS : ON
233- BUILD_TYPE : Release
234- CCOMPILER : clang-17
235- CXXCOMPILER : clang++-17
236- CUCUMBER_TIMEOUT : 60000
237- ENABLE_LTO : OFF
238-
239- - name : clang-16-release
240- continue-on-error : false
241- node : 18
242- runs-on : ubuntu-24.04
243- BUILD_TOOLS : ON
244- BUILD_TYPE : Release
245- CCOMPILER : clang-16
246- CXXCOMPILER : clang++-16
247- CUCUMBER_TIMEOUT : 60000
248- ENABLE_LTO : OFF
249-
250- - name : conan-linux-debug-asan-ubsan
251- continue-on-error : false
252- node : 18
253- runs-on : ubuntu-24.04
254- BUILD_TOOLS : ON
255- BUILD_TYPE : Release
256- CCOMPILER : clang-18
257- CXXCOMPILER : clang++-18
258- ENABLE_CONAN : ON
259- ENABLE_SANITIZER : ON
260- ENABLE_LTO : OFF
261-
262- - name : conan-linux-release
263- continue-on-error : false
264- node : 18
265- runs-on : ubuntu-24.04
266- BUILD_TOOLS : ON
267- BUILD_TYPE : Release
268- CCOMPILER : clang-18
269- CXXCOMPILER : clang++-18
270- ENABLE_CONAN : ON
271- ENABLE_LTO : OFF
272-
273- - name : gcc-14-release
274- continue-on-error : false
275- node : 20
276- runs-on : ubuntu-24.04
277- BUILD_TOOLS : ON
278- BUILD_TYPE : Release
279- CCOMPILER : gcc-14
280- CXXCOMPILER : g++-14
281- CXXFLAGS : ' -Wno-array-bounds -Wno-uninitialized'
282-
283- - name : gcc-13-release
284- continue-on-error : false
285- node : 20
286- runs-on : ubuntu-24.04
287- BUILD_TOOLS : ON
288- BUILD_TYPE : Release
289- CCOMPILER : gcc-13
290- CXXCOMPILER : g++-13
291- CXXFLAGS : ' -Wno-array-bounds -Wno-uninitialized'
292-
293- - name : gcc-12-release
294- continue-on-error : false
295- node : 20
296- runs-on : ubuntu-22.04
297- BUILD_TOOLS : ON
298- BUILD_TYPE : Release
299- CCOMPILER : gcc-12
300- CXXCOMPILER : g++-12
301- CXXFLAGS : ' -Wno-array-bounds -Wno-uninitialized'
302-
303- - name : conan-linux-release-node
304- build_node_package : true
305- continue-on-error : false
306- node : 20
307- runs-on : ubuntu-24.04
308- BUILD_TYPE : Release
309- CCOMPILER : clang-16
310- CXXCOMPILER : clang++-16
311- ENABLE_CONAN : ON
312- NODE_PACKAGE_TESTS_ONLY : ON
313-
314- - name : conan-linux-debug-node
315- build_node_package : true
316- continue-on-error : false
317- node : 20
318- runs-on : ubuntu-24.04
319- BUILD_TYPE : Debug
320- CCOMPILER : clang-16
321- CXXCOMPILER : clang++-16
322- ENABLE_CONAN : ON
323- NODE_PACKAGE_TESTS_ONLY : ON
324-
325- - name : conan-macos-x64-release-node
326- build_node_package : true
327- continue-on-error : true
328- node : 20
329- runs-on : macos-13 # x86_64
330- BUILD_TYPE : Release
331- CCOMPILER : clang
332- CXXCOMPILER : clang++
333- CUCUMBER_TIMEOUT : 60000
334- ENABLE_ASSERTIONS : ON
335- ENABLE_CONAN : ON
336-
337- - name : conan-macos-arm64-release-node
338- build_node_package : true
339- continue-on-error : true
340- node : 20
341- runs-on : macos-14 # arm64
342- BUILD_TYPE : Release
343- CCOMPILER : clang
344- CXXCOMPILER : clang++
345- CUCUMBER_TIMEOUT : 60000
346- ENABLE_ASSERTIONS : ON
347- ENABLE_CONAN : ON
348-
349- name : ${{ matrix.name}}
350- continue-on-error : ${{ matrix.continue-on-error }}
351- runs-on : ${{ matrix.runs-on }}
179+ compiler : gcc-13
180+ type : Debug
181+ coverage : true
182+
183+ - name : clang-18-debug-asan
184+ compiler : clang-18
185+ type : Debug
186+ sanitizer : true
187+ target_arch : x86_64-asan-ubsan
188+
189+ # Conan builds
190+ - name : conan-linux
191+ compiler : clang-16
192+ type : [Debug, Release]
193+ conan : true
194+ node_tests : true
195+
196+ # macOS builds
197+ - name : macos
198+ runner : [macos-13, macos-14]
199+ compiler : clang
200+ type : Release
201+ conan : true
202+ assertions : true
203+
204+ # shared configuration
205+ include :
206+ - node : 20
207+ runner : ubuntu-24.04
208+ build_tools : ON
209+ cucumber_timeout : 60000
210+ enable_lto : OFF
211+
212+ # Job-Konfiguration
213+ name : ${{ matrix.compiler }}-${{ matrix.type }}
214+ runs-on : ${{ matrix.runner || 'ubuntu-24.04' }}
215+
352216 env :
353- BUILD_TOOLS : ${{ matrix.BUILD_TOOLS }}
354- BUILD_TYPE : ${{ matrix.BUILD_TYPE }}
355- BUILD_SHARED_LIBS : ${{ matrix.BUILD_SHARED_LIBS }}
356- CCOMPILER : ${{ matrix.CCOMPILER }}
357- CFLAGS : ${{ matrix.CFLAGS }}
358- CUCUMBER_TIMEOUT : ${{ matrix.CUCUMBER_TIMEOUT }}
359- CXXCOMPILER : ${{ matrix.CXXCOMPILER }}
360- CXXFLAGS : ${{ matrix.CXXFLAGS }}
361- ENABLE_ASSERTIONS : ${{ matrix.ENABLE_ASSERTIONS }}
362- ENABLE_CLANG_TIDY : ${{ matrix.ENABLE_CLANG_TIDY }}
363- ENABLE_COVERAGE : ${{ matrix.ENABLE_COVERAGE }}
364- ENABLE_CONAN : ${{ matrix.ENABLE_CONAN }}
365- ENABLE_SANITIZER : ${{ matrix.ENABLE_SANITIZER }}
366- NODE_PACKAGE_TESTS_ONLY : ${{ matrix.NODE_PACKAGE_TESTS_ONLY }}
367- TARGET_ARCH : ${{ matrix.TARGET_ARCH }}
368- OSRM_CONNECTION_RETRIES : ${{ matrix.OSRM_CONNECTION_RETRIES }}
369- OSRM_CONNECTION_EXP_BACKOFF_COEF : ${{ matrix.OSRM_CONNECTION_EXP_BACKOFF_COEF }}
370- ENABLE_LTO : ${{ matrix.ENABLE_LTO }}
217+ BUILD_TYPE : ${{ matrix.type }}
218+ CCOMPILER : ${{ matrix.compiler }}
219+ CXXCOMPILER : ${{ startsWith(matrix.compiler, 'gcc') && format('g++-{0}', matrix.compiler) || format('clang++-{0}', matrix.compiler) }}
220+ CXXFLAGS : ${{ matrix.flags }}
221+ ENABLE_COVERAGE : ${{ matrix.coverage && 'ON' || 'OFF' }}
222+ ENABLE_SANITIZER : ${{ matrix.sanitizer && 'ON' || 'OFF' }}
223+ ENABLE_CONAN : ${{ matrix.conan && 'ON' || 'OFF' }}
224+ ENABLE_ASSERTIONS : ${{ matrix.assertions && 'ON' || 'OFF' }}
225+ TARGET_ARCH : ${{ matrix.target_arch }}
371226 steps :
372227 - uses : actions/checkout@v4
373228 - name : Build machine architecture
@@ -646,4 +501,3 @@ jobs:
646501 needs : [build-test-publish, docker-image-matrix, windows-release-node]
647502 steps :
648503 - run : echo "CI complete"
649-
0 commit comments