Skip to content

Commit 828b465

Browse files
committed
feat: add aarch64-linux-musl
ci: extract testing matrices for aarch64-linux gnu and musl
1 parent 46dbb80 commit 828b465

File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed

.github/workflows/ci.yml

+64
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
include:
4848
- platform: aarch64-linux-gnu
4949
alias: aarch64-linux
50+
- platform: aarch64-linux-musl
5051
- platform: arm-linux-gnu
5152
alias: arm-linux
5253
- platform: arm-linux-musl
@@ -380,6 +381,69 @@ jobs:
380381
ruby -rrcd_test -S rake test
381382
"
382383
384+
test_aarch64-linux-gnu:
385+
name: aarch64-linux-gnu
386+
needs: build_native_gem
387+
strategy:
388+
fail-fast: false
389+
matrix:
390+
ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
391+
platform: [aarch64-linux, aarch64-linux-gnu]
392+
# include:
393+
# # ruby 3.0 and earlier ship rubygems < 3.2.33, so can't recognize the -gnu suffix
394+
# - ruby: "3.3"
395+
# platform: aarch64-linux-gnu
396+
# - ruby: "3.2"
397+
# platform: aarch64-linux-gnu
398+
# - ruby: "3.1"
399+
# platform: aarch64-linux-gnu
400+
runs-on: ubuntu-latest
401+
steps:
402+
- uses: actions/checkout@v3
403+
- name: Download gem-${{ matrix.platform }}
404+
uses: actions/download-artifact@v3
405+
with:
406+
name: gem-${{ matrix.platform }}
407+
- name: Run tests
408+
run: |
409+
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
410+
docker run --rm -v $PWD:/work -w /work \
411+
--platform=linux/arm64 ruby:${{ matrix.ruby }} \
412+
sh -c "
413+
gem install --local *.gem --verbose &&
414+
cd test/rcd_test/ &&
415+
bundle install &&
416+
ruby -rrcd_test -S rake test
417+
"
418+
419+
test_aarch64-linux-musl:
420+
name: aarch64-linux-musl
421+
needs: build_native_gem
422+
strategy:
423+
fail-fast: false
424+
matrix:
425+
ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
426+
# ruby: ["3.3", "3.2", "3.1", "3.0", "2.7"] # ruby:2.6-alpine and earlier ship with rubygems that doesn't recognize the -musl suffix
427+
platform: [aarch64-linux-musl]
428+
runs-on: ubuntu-latest
429+
steps:
430+
- uses: actions/checkout@v3
431+
- name: Download gem-${{ matrix.platform }}
432+
uses: actions/download-artifact@v3
433+
with:
434+
name: gem-${{ matrix.platform }}
435+
- name: Run tests
436+
run: |
437+
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
438+
docker run --rm -v $PWD:/work -w /work \
439+
--platform=linux/arm64 ruby:${{ matrix.ruby }}-alpine \
440+
sh -c "
441+
gem install --local *.gem --verbose &&
442+
cd test/rcd_test/ &&
443+
bundle install &&
444+
ruby -rrcd_test -S rake test
445+
"
446+
383447
test_native_gem:
384448
name: test native
385449
needs: build_native_gem

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/.bundle/
22
/.yardoc
33
/Dockerfile.mri.aarch64-linux-gnu
4+
/Dockerfile.mri.aarch64-linux-musl
45
/Dockerfile.mri.arm-linux-gnu
56
/Dockerfile.mri.arm-linux-musl
67
/Dockerfile.mri.arm64-darwin

Rakefile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RakeCompilerDock::GemHelper.install_tasks
1111
platforms = [
1212
# tuple is [platform, target]
1313
["aarch64-linux-gnu", "aarch64-linux-gnu"],
14+
["aarch64-linux-musl", "aarch64-linux-musl"],
1415
["arm-linux-gnu", "arm-linux-gnueabihf"],
1516
["arm-linux-musl", "arm-linux-musleabihf"],
1617
["arm64-darwin", "aarch64-apple-darwin"],

test/rcd_test/Rakefile

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ else
2121
ext.cross_platform = %w[
2222
aarch64-linux
2323
aarch64-linux-gnu
24+
aarch64-linux-musl
2425
arm-linux
2526
arm-linux-gnu
2627
arm-linux-musl

0 commit comments

Comments
 (0)