Skip to content

Commit 83ce41a

Browse files
committed
Improved GHA matrix
1 parent 255f7aa commit 83ce41a

File tree

1 file changed

+38
-14
lines changed

1 file changed

+38
-14
lines changed

.github/workflows/ci.yml

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,17 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
include:
19+
config:
20+
- variant: "debug,release"
21+
- name: No capture
22+
variant: "leaf_debug_capture0,leaf_release_capture0"
23+
- name: No diagnostics
24+
variant: "leaf_debug_diag0,leaf_release_diag0"
25+
- name: Embedded
26+
variant: "leaf_debug_embedded,leaf_release_embedded"
27+
- name: Single header
28+
variant: "leaf_debug_single_header,leaf_release_single_header"
29+
platform:
2030
- toolset: gcc-5
2131
cxxstd: "11,14,1z"
2232
container: ubuntu:18.04
@@ -185,27 +195,29 @@ jobs:
185195
cxxstd: "11,14,17,20,2b"
186196
os: macos-26
187197

188-
runs-on: ${{matrix.os}}
198+
name: ${{matrix.platform.os}} / ${{matrix.platform.compiler || matrix.platform.toolset}}${{matrix.config.name && format(' / {0}', matrix.config.name) || ''}}
199+
200+
runs-on: ${{matrix.platform.os}}
189201

190202
container:
191-
image: ${{matrix.container}}
203+
image: ${{matrix.platform.container}}
192204
volumes:
193205
- /node20217:/node20217:rw,rshared
194-
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
206+
- ${{ startsWith(matrix.platform.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
195207

196208
defaults:
197209
run:
198210
shell: bash
199211

200212
steps:
201213
- name: Setup container environment
202-
if: matrix.container
214+
if: matrix.platform.container
203215
run: |
204216
apt-get update
205217
apt-get -y install sudo python3 git g++ curl xz-utils
206218
207219
- name: Install nodejs20glibc2.17
208-
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
220+
if: ${{ startsWith( matrix.platform.container, 'ubuntu:1' ) }}
209221
run: |
210222
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
211223
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
@@ -214,10 +226,10 @@ jobs:
214226
- uses: actions/checkout@v4
215227

216228
- name: Install packages
217-
if: matrix.install
229+
if: matrix.platform.install
218230
run: |
219231
sudo apt-get update
220-
sudo apt-get -y install ${{matrix.install}}
232+
sudo apt-get -y install ${{matrix.platform.install}}
221233
222234
- name: Setup Boost
223235
run: |
@@ -242,9 +254,9 @@ jobs:
242254
./b2 -d0 headers
243255
244256
- name: Create user-config.jam
245-
if: matrix.compiler
257+
if: matrix.platform.compiler
246258
run: |
247-
echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
259+
echo "using ${{matrix.platform.toolset}} : : ${{matrix.platform.compiler}} ;" > ~/user-config.jam
248260
249261
- name: Generate headers
250262
run: |
@@ -254,13 +266,23 @@ jobs:
254266
- name: Run tests
255267
run: |
256268
cd ../boost-root
257-
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} ${ADDRMD:+address-model=$ADDRMD} link=shared,static variant=debug,release,leaf_debug_capture0,leaf_release_capture0,leaf_debug_diag0,leaf_release_diag0,leaf_debug_embedded,leaf_release_embedded,leaf_debug_single_header,leaf_release_single_header
269+
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.platform.toolset}} cxxstd=${{matrix.platform.cxxstd}} ${ADDRMD:+address-model=$ADDRMD} link=shared,static variant=${{matrix.config.variant}}
258270
259271
windows:
260272
strategy:
261273
fail-fast: false
262274
matrix:
263-
include:
275+
config:
276+
- variant: "debug,release"
277+
- name: No capture
278+
variant: "leaf_debug_capture0,leaf_release_capture0"
279+
- name: No diagnostics
280+
variant: "leaf_debug_diag0,leaf_release_diag0"
281+
- name: Embedded
282+
variant: "leaf_debug_embedded,leaf_release_embedded"
283+
- name: Single header
284+
variant: "leaf_debug_single_header,leaf_release_single_header"
285+
platform:
264286
- toolset: msvc-14.3
265287
cxxstd: "14,17,20,latest"
266288
addrmd: 32,64
@@ -274,7 +296,9 @@ jobs:
274296
addrmd: 64
275297
os: windows-2022
276298

277-
runs-on: ${{matrix.os}}
299+
name: ${{matrix.platform.os}} / ${{matrix.platform.compiler || matrix.platform.toolset}}${{matrix.config.name && format(' / {0}', matrix.config.name) || ''}}
300+
301+
runs-on: ${{matrix.platform.os}}
278302

279303
steps:
280304
- uses: actions/checkout@v4
@@ -310,4 +334,4 @@ jobs:
310334
shell: cmd
311335
run: |
312336
cd ../boost-root
313-
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} ${{matrix.embedmanifest}} variant=debug,release,leaf_debug_capture0,leaf_release_capture0,leaf_debug_diag0,leaf_release_diag0,leaf_debug_embedded,leaf_release_embedded,leaf_debug_single_header,leaf_release_single_header
337+
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.platform.toolset}} cxxstd=${{matrix.platform.cxxstd}} address-model=${{matrix.platform.addrmd}} variant=${{matrix.config.variant}}

0 commit comments

Comments
 (0)