Skip to content

Commit bba9bda

Browse files
committed
CI: Move ARM related jobs to ARM hardware
They did run on emulation, but are much faster on ARM hardware.
1 parent 06e9ed6 commit bba9bda

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

.github/workflows/ci.yml

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -241,21 +241,23 @@ jobs:
241241
- { ruby: "3.0", rubygems: "3.5.23" }
242242
- { ruby: "2.7", rubygems: "3.4.22" }
243243
# declare docker image for each platform
244-
- { platform: aarch64-linux-musl, docker_tag: "-alpine" }
245-
- { platform: arm-linux-musl, docker_tag: "-alpine" }
246-
- { platform: x86-linux-musl, docker_tag: "-alpine" }
247-
- { platform: x86_64-linux-musl, docker_tag: "-alpine" }
244+
- { platform: aarch64-linux-musl, runon: "ubuntu-24.04-arm", docker_tag: "-alpine" }
245+
- { platform: arm-linux-musl, runon: "ubuntu-24.04-arm", docker_tag: "-alpine" }
246+
- { platform: x86-linux-musl, runon: "ubuntu-latest", docker_tag: "-alpine" }
247+
- { platform: x86_64-linux-musl, runon: "ubuntu-latest", docker_tag: "-alpine" }
248+
- { platform: x86_64-linux, runon: "ubuntu-latest" }
249+
- { platform: x86_64-linux-gnu, runon: "ubuntu-latest" }
248250
# declare docker platform for each platform
249-
- { platform: aarch64-linux, docker_platform: "--platform=linux/arm64" }
250-
- { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
251-
- { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
252-
- { platform: arm-linux, docker_platform: "--platform=linux/arm/v7" }
253-
- { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
254-
- { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
255-
- { platform: x86-linux, docker_platform: "--platform=linux/386" }
256-
- { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
257-
- { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
258-
runs-on: ubuntu-latest
251+
- { platform: aarch64-linux, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm64" }
252+
- { platform: aarch64-linux-gnu, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm64" }
253+
- { platform: aarch64-linux-musl, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm64" }
254+
- { platform: arm-linux, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm/v7" }
255+
- { platform: arm-linux-gnu, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm/v7" }
256+
- { platform: arm-linux-musl, runon: "ubuntu-24.04-arm", docker_platform: "--platform=linux/arm/v7" }
257+
- { platform: x86-linux, runon: "ubuntu-latest", docker_platform: "--platform=linux/386" }
258+
- { platform: x86-linux-gnu, runon: "ubuntu-latest", docker_platform: "--platform=linux/386" }
259+
- { platform: x86-linux-musl, runon: "ubuntu-latest", docker_platform: "--platform=linux/386" }
260+
runs-on: ${{ matrix.runon }}
259261
steps:
260262
- uses: actions/checkout@v4
261263
- name: Download gem-${{ matrix.platform }}
@@ -264,7 +266,6 @@ jobs:
264266
name: gem-${{ matrix.platform }}
265267
- name: Run tests
266268
run: |
267-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
268269
docker run --rm -v $PWD:/work -w /work \
269270
${{ matrix.docker_platform}} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
270271
sh -c "
@@ -383,27 +384,32 @@ jobs:
383384
fail-fast: false
384385
matrix:
385386
include:
386-
- from_image: navikey/raspbian-bullseye
387+
- runon: ubuntu-24.04-arm
388+
from_image: navikey/raspbian-bullseye
387389
image_platform: linux/arm/v7
388390
platform: arm-linux # bullseye ships ruby 2.7, rubygems won't recognize -gnu suffix
389391
dockerfile: debian
390-
- from_image: arm64v8/ubuntu
392+
- runon: ubuntu-24.04-arm
393+
from_image: arm64v8/ubuntu
391394
image_platform: linux/aarch64
392395
platform: aarch64-linux # arm64v8 ships ruby 3.0, rubygems won't recognize -gnu suffix
393396
dockerfile: debian
394-
- from_image: i386/alpine
397+
- runon: ubuntu-latest
398+
from_image: i386/alpine
395399
image_platform: linux/386
396400
platform: x86-linux-musl
397401
dockerfile: alpine
398-
- from_image: arm32v6/alpine
402+
- runon: ubuntu-24.04-arm
403+
from_image: arm32v6/alpine
399404
image_platform: linux/arm/v6
400405
platform: arm-linux-musl
401406
dockerfile: alpine
402-
- from_image: alpine
407+
- runon: ubuntu-latest
408+
from_image: alpine
403409
image_platform: linux/amd64
404410
platform: x86_64-linux-musl
405411
dockerfile: alpine
406-
runs-on: ubuntu-latest
412+
runs-on: ${{ matrix.runon }}
407413
steps:
408414
- uses: actions/checkout@v4
409415
- name: Download gem-${{ matrix.platform }}
@@ -412,7 +418,6 @@ jobs:
412418
name: gem-${{ matrix.platform }}
413419
- name: Build ${{ matrix.from_image }} image
414420
run: |
415-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
416421
docker build --rm --build-arg from_image=${{ matrix.from_image }} --platform=${{ matrix.image_platform }} -t ruby-test -f test/env/Dockerfile.${{ matrix.dockerfile }} .
417422
- name: Run tests
418423
run: docker run --rm -t --network=host -v `pwd`:/build ruby-test

0 commit comments

Comments
 (0)