4747
4848jobs :
4949 docker_cache :
50- name : " Build Docker image"
51- runs-on : ubuntu-latest
50+ name : " Build ${{ matrix.arch }} Docker image"
51+ runs-on : ${{ matrix.runner }}
52+
53+ strategy :
54+ fail-fast : false
55+ matrix :
56+ include :
57+ - arch : x64
58+ runner : ubuntu-latest
59+ - arch : arm64
60+ runner : ubuntu-24.04-arm
61+
5262 steps :
5363 - name : Set up Docker Buildx
5464 uses : docker/setup-buildx-action@v3
@@ -61,11 +71,11 @@ jobs:
6171 uses : docker/build-push-action@v5
6272 with :
6373 file : ./ci/linux-debian.Dockerfile
64- tags : linux -debian-image
74+ tags : ${{ matrix.arch }} -debian-image
6575 cache-from : type=gha
6676 cache-to : type=gha,mode=min
6777
68- linux_debian :
78+ x86_64-debian :
6979 name : " x86_64: Linux (Debian stable)"
7080 runs-on : ubuntu-latest
7181 needs : docker_cache
@@ -107,7 +117,7 @@ jobs:
107117 uses : ./.github/actions/run-in-docker-action
108118 with :
109119 dockerfile : ./ci/linux-debian.Dockerfile
110- tag : linux -debian-image
120+ tag : x64 -debian-image
111121
112122 - name : Print logs
113123 uses : ./.github/actions/print-logs
@@ -144,7 +154,7 @@ jobs:
144154 uses : ./.github/actions/run-in-docker-action
145155 with :
146156 dockerfile : ./ci/linux-debian.Dockerfile
147- tag : linux -debian-image
157+ tag : x64 -debian-image
148158
149159 - name : Print logs
150160 uses : ./.github/actions/print-logs
@@ -177,7 +187,7 @@ jobs:
177187 uses : ./.github/actions/run-in-docker-action
178188 with :
179189 dockerfile : ./ci/linux-debian.Dockerfile
180- tag : linux -debian-image
190+ tag : x64 -debian-image
181191
182192 - name : Print logs
183193 uses : ./.github/actions/print-logs
@@ -219,21 +229,19 @@ jobs:
219229 uses : ./.github/actions/run-in-docker-action
220230 with :
221231 dockerfile : ./ci/linux-debian.Dockerfile
222- tag : linux -debian-image
232+ tag : x64 -debian-image
223233
224234 - name : Print logs
225235 uses : ./.github/actions/print-logs
226236 if : ${{ !cancelled() }}
227237
228- arm64_debian :
229- name : " ARM64 : Linux (Debian stable, QEMU )"
230- runs-on : ubuntu-latest
238+ arm64-debian :
239+ name : " arm64 : Linux (Debian stable)"
240+ runs-on : ubuntu-24.04-arm
231241 needs : docker_cache
232242
233243 env :
234- WRAPPER_CMD : ' qemu-aarch64'
235244 SECP256K1_TEST_ITERS : 16
236- HOST : ' aarch64-linux-gnu'
237245 WITH_VALGRIND : ' no'
238246 ECDH : ' yes'
239247 RECOVERY : ' yes'
@@ -243,27 +251,26 @@ jobs:
243251 ELLSWIFT : ' yes'
244252 SILENTPAYMENTS : ' yes'
245253 CTIMETESTS : ' no'
254+ CC : ${{ matrix.cc }}
246255
247256 strategy :
248257 fail-fast : false
249258 matrix :
250- configuration :
251- - env_vars : { } # gcc
252- - env_vars : # clang
253- CC : ' clang --target=aarch64-linux-gnu'
254- - env_vars : # clang-snapshot
255- CC : ' clang-snapshot --target=aarch64-linux-gnu'
259+ cc :
260+ - ' gcc'
261+ - ' clang'
262+ - ' gcc-snapshot'
263+ - ' clang-snapshot'
256264
257265 steps :
258266 - name : Checkout
259267 uses : actions/checkout@v4
260268
261269 - name : CI script
262- env : ${{ matrix.configuration.env_vars }}
263270 uses : ./.github/actions/run-in-docker-action
264271 with :
265272 dockerfile : ./ci/linux-debian.Dockerfile
266- tag : linux -debian-image
273+ tag : arm64 -debian-image
267274
268275 - name : Print logs
269276 uses : ./.github/actions/print-logs
@@ -296,26 +303,46 @@ jobs:
296303 uses : ./.github/actions/run-in-docker-action
297304 with :
298305 dockerfile : ./ci/linux-debian.Dockerfile
299- tag : linux -debian-image
306+ tag : x64 -debian-image
300307
301308 - name : Print logs
302309 uses : ./.github/actions/print-logs
303310 if : ${{ !cancelled() }}
304311
305312
306313 valgrind_debian :
307- name : " Valgrind (memcheck)"
308- runs-on : ubuntu-latest
314+ name : " Valgrind ${{ matrix.binary_arch }} (memcheck)"
315+ runs-on : ${{ matrix.runner }}
309316 needs : docker_cache
310317
311318 strategy :
312319 fail-fast : false
313320 matrix :
314- configuration :
315- - env_vars : { CC: 'clang', ASM: 'auto' }
316- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
317- - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
318- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
321+ include :
322+ - docker_arch : x64
323+ runner : ubuntu-latest
324+ binary_arch : x64
325+ env_vars : { CC: 'clang', ASM: 'auto' }
326+ - docker_arch : x64
327+ runner : ubuntu-latest
328+ binary_arch : i686
329+ env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
330+ - docker_arch : arm64
331+ runner : ubuntu-24.04-arm
332+ binary_arch : arm64
333+ env_vars : { CC: 'clang', ASM: 'auto' }
334+ - docker_arch : x64
335+ runner : ubuntu-latest
336+ binary_arch : x64
337+ env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
338+ - docker_arch : x64
339+ runner : ubuntu-latest
340+ binary_arch : i686
341+ env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
342+ - docker_arch : arm64
343+ runner : ubuntu-24.04-arm
344+ binary_arch : arm64
345+ env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
319346
320347 env :
321348 # The `--error-exitcode` is required to make the test fail if valgrind found errors,
@@ -336,11 +363,11 @@ jobs:
336363 uses : actions/checkout@v4
337364
338365 - name : CI script
339- env : ${{ matrix.configuration. env_vars }}
366+ env : ${{ matrix.env_vars }}
340367 uses : ./.github/actions/run-in-docker-action
341368 with :
342369 dockerfile : ./ci/linux-debian.Dockerfile
343- tag : linux -debian-image
370+ tag : ${{ matrix.docker_arch }} -debian-image
344371
345372 - name : Print logs
346373 uses : ./.github/actions/print-logs
@@ -385,7 +412,7 @@ jobs:
385412 uses : ./.github/actions/run-in-docker-action
386413 with :
387414 dockerfile : ./ci/linux-debian.Dockerfile
388- tag : linux -debian-image
415+ tag : x64 -debian-image
389416
390417 - name : Print logs
391418 uses : ./.github/actions/print-logs
@@ -437,7 +464,7 @@ jobs:
437464 uses : ./.github/actions/run-in-docker-action
438465 with :
439466 dockerfile : ./ci/linux-debian.Dockerfile
440- tag : linux -debian-image
467+ tag : x64 -debian-image
441468
442469 - name : Print logs
443470 uses : ./.github/actions/print-logs
@@ -481,7 +508,7 @@ jobs:
481508 uses : ./.github/actions/run-in-docker-action
482509 with :
483510 dockerfile : ./ci/linux-debian.Dockerfile
484- tag : linux -debian-image
511+ tag : x64 -debian-image
485512
486513 - name : Print logs
487514 uses : ./.github/actions/print-logs
@@ -689,7 +716,7 @@ jobs:
689716 uses : ./.github/actions/run-in-docker-action
690717 with :
691718 dockerfile : ./ci/linux-debian.Dockerfile
692- tag : linux -debian-image
719+ tag : x64 -debian-image
693720
694721 - name : Print logs
695722 uses : ./.github/actions/print-logs
@@ -708,7 +735,7 @@ jobs:
708735 uses : ./.github/actions/run-in-docker-action
709736 with :
710737 dockerfile : ./ci/linux-debian.Dockerfile
711- tag : linux -debian-image
738+ tag : x64 -debian-image
712739 command : |
713740 g++ -Werror include/*.h
714741 clang -Werror -x c++-header include/*.h
0 commit comments