4646
4747jobs :
4848 docker_cache :
49- name : " Build Docker image"
50- runs-on : ubuntu-latest
49+ name : " Build ${{ matrix.arch }} Docker image"
50+ runs-on : ${{ matrix.runner }}
51+
52+ strategy :
53+ fail-fast : false
54+ matrix :
55+ include :
56+ - arch : x64
57+ runner : ubuntu-latest
58+ - arch : arm64
59+ runner : ubuntu-24.04-arm
60+
5161 steps :
5262 - name : Set up Docker Buildx
5363 uses : docker/setup-buildx-action@v3
@@ -60,11 +70,11 @@ jobs:
6070 uses : docker/build-push-action@v5
6171 with :
6272 file : ./ci/linux-debian.Dockerfile
63- tags : linux -debian-image
73+ tags : ${{ matrix.arch }} -debian-image
6474 cache-from : type=gha
6575 cache-to : type=gha,mode=min
6676
67- linux_debian :
77+ x86_64-debian :
6878 name : " x86_64: Linux (Debian stable)"
6979 runs-on : ubuntu-latest
7080 needs : docker_cache
@@ -106,7 +116,7 @@ jobs:
106116 uses : ./.github/actions/run-in-docker-action
107117 with :
108118 dockerfile : ./ci/linux-debian.Dockerfile
109- tag : linux -debian-image
119+ tag : x64 -debian-image
110120
111121 - name : Print logs
112122 uses : ./.github/actions/print-logs
@@ -142,7 +152,7 @@ jobs:
142152 uses : ./.github/actions/run-in-docker-action
143153 with :
144154 dockerfile : ./ci/linux-debian.Dockerfile
145- tag : linux -debian-image
155+ tag : x64 -debian-image
146156
147157 - name : Print logs
148158 uses : ./.github/actions/print-logs
@@ -174,7 +184,7 @@ jobs:
174184 uses : ./.github/actions/run-in-docker-action
175185 with :
176186 dockerfile : ./ci/linux-debian.Dockerfile
177- tag : linux -debian-image
187+ tag : x64 -debian-image
178188
179189 - name : Print logs
180190 uses : ./.github/actions/print-logs
@@ -215,21 +225,19 @@ jobs:
215225 uses : ./.github/actions/run-in-docker-action
216226 with :
217227 dockerfile : ./ci/linux-debian.Dockerfile
218- tag : linux -debian-image
228+ tag : x64 -debian-image
219229
220230 - name : Print logs
221231 uses : ./.github/actions/print-logs
222232 if : ${{ !cancelled() }}
223233
224- arm64_debian :
225- name : " ARM64 : Linux (Debian stable, QEMU )"
226- runs-on : ubuntu-latest
234+ arm64-debian :
235+ name : " arm64 : Linux (Debian stable)"
236+ runs-on : ubuntu-24.04-arm
227237 needs : docker_cache
228238
229239 env :
230- WRAPPER_CMD : ' qemu-aarch64'
231240 SECP256K1_TEST_ITERS : 16
232- HOST : ' aarch64-linux-gnu'
233241 WITH_VALGRIND : ' no'
234242 ECDH : ' yes'
235243 RECOVERY : ' yes'
@@ -238,27 +246,26 @@ jobs:
238246 MUSIG : ' yes'
239247 ELLSWIFT : ' yes'
240248 CTIMETESTS : ' no'
249+ CC : ${{ matrix.cc }}
241250
242251 strategy :
243252 fail-fast : false
244253 matrix :
245- configuration :
246- - env_vars : { } # gcc
247- - env_vars : # clang
248- CC : ' clang --target=aarch64-linux-gnu'
249- - env_vars : # clang-snapshot
250- CC : ' clang-snapshot --target=aarch64-linux-gnu'
254+ cc :
255+ - ' gcc'
256+ - ' clang'
257+ - ' gcc-snapshot'
258+ - ' clang-snapshot'
251259
252260 steps :
253261 - name : Checkout
254262 uses : actions/checkout@v4
255263
256264 - name : CI script
257- env : ${{ matrix.configuration.env_vars }}
258265 uses : ./.github/actions/run-in-docker-action
259266 with :
260267 dockerfile : ./ci/linux-debian.Dockerfile
261- tag : linux -debian-image
268+ tag : arm64 -debian-image
262269
263270 - name : Print logs
264271 uses : ./.github/actions/print-logs
@@ -290,26 +297,46 @@ jobs:
290297 uses : ./.github/actions/run-in-docker-action
291298 with :
292299 dockerfile : ./ci/linux-debian.Dockerfile
293- tag : linux -debian-image
300+ tag : x64 -debian-image
294301
295302 - name : Print logs
296303 uses : ./.github/actions/print-logs
297304 if : ${{ !cancelled() }}
298305
299306
300307 valgrind_debian :
301- name : " Valgrind (memcheck)"
302- runs-on : ubuntu-latest
308+ name : " Valgrind ${{ matrix.binary_arch }} (memcheck)"
309+ runs-on : ${{ matrix.runner }}
303310 needs : docker_cache
304311
305312 strategy :
306313 fail-fast : false
307314 matrix :
308- configuration :
309- - env_vars : { CC: 'clang', ASM: 'auto' }
310- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
311- - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
312- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
315+ include :
316+ - docker_arch : x64
317+ runner : ubuntu-latest
318+ binary_arch : x64
319+ env_vars : { CC: 'clang', ASM: 'auto' }
320+ - docker_arch : x64
321+ runner : ubuntu-latest
322+ binary_arch : i686
323+ env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
324+ - docker_arch : arm64
325+ runner : ubuntu-24.04-arm
326+ binary_arch : arm64
327+ env_vars : { CC: 'clang', ASM: 'auto' }
328+ - docker_arch : x64
329+ runner : ubuntu-latest
330+ binary_arch : x64
331+ env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
332+ - docker_arch : x64
333+ runner : ubuntu-latest
334+ binary_arch : i686
335+ env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
336+ - docker_arch : arm64
337+ runner : ubuntu-24.04-arm
338+ binary_arch : arm64
339+ env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
313340
314341 env :
315342 # The `--error-exitcode` is required to make the test fail if valgrind found errors,
@@ -329,11 +356,11 @@ jobs:
329356 uses : actions/checkout@v4
330357
331358 - name : CI script
332- env : ${{ matrix.configuration. env_vars }}
359+ env : ${{ matrix.env_vars }}
333360 uses : ./.github/actions/run-in-docker-action
334361 with :
335362 dockerfile : ./ci/linux-debian.Dockerfile
336- tag : linux -debian-image
363+ tag : ${{ matrix.docker_arch }} -debian-image
337364
338365 - name : Print logs
339366 uses : ./.github/actions/print-logs
@@ -377,7 +404,7 @@ jobs:
377404 uses : ./.github/actions/run-in-docker-action
378405 with :
379406 dockerfile : ./ci/linux-debian.Dockerfile
380- tag : linux -debian-image
407+ tag : x64 -debian-image
381408
382409 - name : Print logs
383410 uses : ./.github/actions/print-logs
@@ -428,7 +455,7 @@ jobs:
428455 uses : ./.github/actions/run-in-docker-action
429456 with :
430457 dockerfile : ./ci/linux-debian.Dockerfile
431- tag : linux -debian-image
458+ tag : x64 -debian-image
432459
433460 - name : Print logs
434461 uses : ./.github/actions/print-logs
@@ -471,7 +498,7 @@ jobs:
471498 uses : ./.github/actions/run-in-docker-action
472499 with :
473500 dockerfile : ./ci/linux-debian.Dockerfile
474- tag : linux -debian-image
501+ tag : x64 -debian-image
475502
476503 - name : Print logs
477504 uses : ./.github/actions/print-logs
@@ -546,13 +573,13 @@ jobs:
546573 fail-fast : false
547574 matrix :
548575 env_vars :
549- - { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
576+ - { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
550577 - { WIDEMUL: 'int128_struct', ECMULTGENPRECISION: 2, ECMULTWINDOW: 4 }
551- - { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
578+ - { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
552579 - { WIDEMUL: 'int128', RECOVERY: 'yes' }
553- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
554- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
555- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY' }
580+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
581+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
582+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY' }
556583 - BUILD : ' distcheck'
557584
558585 steps :
@@ -625,10 +652,11 @@ jobs:
625652
626653 - name : Symbol check
627654 if : ${{ matrix.configuration.symbol_check }}
655+ shell : bash
628656 run : |
629657 py -3 --version
630658 py -3 -m pip install lief
631- py -3 .\ tools\ symbol-check.py build\ bin\ RelWithDebInfo\ libsecp256k1-5 .dll
659+ py -3 ./ tools/ symbol-check.py build/ bin/ RelWithDebInfo/ libsecp256k1-* .dll
632660
633661 - name : Check
634662 run : |
@@ -678,7 +706,7 @@ jobs:
678706 uses : ./.github/actions/run-in-docker-action
679707 with :
680708 dockerfile : ./ci/linux-debian.Dockerfile
681- tag : linux -debian-image
709+ tag : x64 -debian-image
682710
683711 - name : Print logs
684712 uses : ./.github/actions/print-logs
@@ -697,7 +725,7 @@ jobs:
697725 uses : ./.github/actions/run-in-docker-action
698726 with :
699727 dockerfile : ./ci/linux-debian.Dockerfile
700- tag : linux -debian-image
728+ tag : x64 -debian-image
701729 command : |
702730 g++ -Werror include/*.h
703731 clang -Werror -x c++-header include/*.h
0 commit comments