Skip to content

Commit 906bbb7

Browse files
committed
Simplify build matrix
1 parent d8680a0 commit 906bbb7

File tree

1 file changed

+56
-202
lines changed

1 file changed

+56
-202
lines changed

.github/workflows/osrm-backend.yml

Lines changed: 56 additions & 202 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)