Skip to content

Commit ad60ef7

Browse files
committed
Merge #1689: ci: Convert arm64 Cirrus tasks to GHA jobs
004f57f ci: Move Valgrind build for `arm64` from Cirrus to GHA (Hennadii Stepanov) 5fafdfc ci: Move `gcc-snapshot` build for `arm64` from Cirrus to GHA (Hennadii Stepanov) e814b79 ci: Switch `arm64_debian` from QEMU to native `arm64` Docker image (Hennadii Stepanov) bcf7734 ci: Add `arm64` architecture to `docker_cache` job (Hennadii Stepanov) b77aae9 ci: Rename Docker image tag to reflect architecture (Hennadii Stepanov) Pull request description: ACKs for top commit: real-or-random: ACK 004f57f jonasnick: ACK 004f57f Tree-SHA512: 5c502ac4ef0f8ca3a02354a07f53dd7818edab233fc55c1a579c48fd03bf879cca725027f435af4fbd92dd732cd2bdbf2935c77e2995eccb34cb54e1d64be61b
2 parents c498779 + 004f57f commit ad60ef7

File tree

2 files changed

+63
-140
lines changed

2 files changed

+63
-140
lines changed

.cirrus.yml

Lines changed: 0 additions & 104 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,18 @@ env:
4646

4747
jobs:
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
@@ -678,7 +705,7 @@ jobs:
678705
uses: ./.github/actions/run-in-docker-action
679706
with:
680707
dockerfile: ./ci/linux-debian.Dockerfile
681-
tag: linux-debian-image
708+
tag: x64-debian-image
682709

683710
- name: Print logs
684711
uses: ./.github/actions/print-logs
@@ -697,7 +724,7 @@ jobs:
697724
uses: ./.github/actions/run-in-docker-action
698725
with:
699726
dockerfile: ./ci/linux-debian.Dockerfile
700-
tag: linux-debian-image
727+
tag: x64-debian-image
701728
command: |
702729
g++ -Werror include/*.h
703730
clang -Werror -x c++-header include/*.h

0 commit comments

Comments
 (0)