Skip to content

Commit a8f3f05

Browse files
committed
ext: ship separate linux native gems for GNU and Musl
updating to rake-compiler-dock 1.5.0.rc1
1 parent 838c2b6 commit a8f3f05

File tree

3 files changed

+43
-41
lines changed

3 files changed

+43
-41
lines changed

.github/workflows/ci.yml

+34-36
Original file line numberDiff line numberDiff line change
@@ -225,14 +225,18 @@ jobs:
225225
fail-fast: false
226226
matrix:
227227
platform:
228-
- "aarch64-linux"
229-
- "arm-linux"
230-
- "arm64-darwin"
231-
- "x64-mingw-ucrt"
232-
- "x64-mingw32"
233-
- "x86-linux"
234-
- "x86_64-darwin"
235-
- "x86_64-linux"
228+
- aarch64-linux-gnu
229+
- aarch64-linux-musl
230+
- arm-linux-gnu
231+
- arm-linux-musl
232+
- arm64-darwin
233+
- x64-mingw-ucrt
234+
- x64-mingw32
235+
- x86-linux-gnu
236+
- x86-linux-musl
237+
- x86_64-darwin
238+
- x86_64-linux-gnu
239+
- x86_64-linux-musl
236240
runs-on: ubuntu-latest
237241
steps:
238242
- uses: actions/checkout@v4
@@ -257,35 +261,28 @@ jobs:
257261
fail-fast: false
258262
matrix:
259263
platform:
260-
- aarch64-linux
261-
# - aarch64-linux-gnu
262-
# - aarch64-linux-musl
263-
- arm-linux
264-
# - arm-linux-gnu
265-
# - arm-linux-musl
266-
- x86-linux
267-
# - x86-linux-gnu
268-
# - x86-linux-musl
269-
- x86_64-linux
270-
# - x86_64-linux-gnu
271-
# - x86_64-linux-musl
264+
- aarch64-linux-gnu
265+
- aarch64-linux-musl
266+
- arm-linux-gnu
267+
- arm-linux-musl
268+
- x86-linux-gnu
269+
- x86-linux-musl
270+
- x86_64-linux-gnu
271+
- x86_64-linux-musl
272272
ruby: ["3.3", "3.2", "3.1", "3.0"]
273273
include:
274-
# # declare docker image for each platform
275-
# - { platform: aarch64-linux-musl, docker_tag: "-alpine" }
276-
# - { platform: arm-linux-musl, docker_tag: "-alpine" }
277-
# - { platform: x86-linux-musl, docker_tag: "-alpine" }
278-
# - { platform: x86_64-linux-musl, docker_tag: "-alpine" }
274+
# declare docker image for each platform
275+
- { platform: aarch64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
276+
- { platform: arm-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
277+
- { platform: x86-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
278+
- { platform: x86_64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
279279
# declare docker platform for each platform
280-
- { platform: aarch64-linux, docker_platform: "--platform=linux/arm64" }
281-
# - { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
282-
# - { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
283-
- { platform: arm-linux, docker_platform: "--platform=linux/arm/v7" }
284-
# - { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
285-
# - { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
286-
- { platform: x86-linux, docker_platform: "--platform=linux/386" }
287-
# - { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
288-
# - { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
280+
- { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
281+
- { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
282+
- { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
283+
- { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
284+
- { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
285+
- { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
289286
runs-on: ubuntu-latest
290287
steps:
291288
- uses: actions/checkout@v4
@@ -296,8 +293,9 @@ jobs:
296293
- run: |
297294
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
298295
docker run --rm -v $PWD:/work -w /work \
299-
${{ matrix.docker_platform}} ruby:${{ matrix.ruby }} \
296+
${{ matrix.docker_platform}} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
300297
sh -c "
298+
${{ matrix.bootstrap }}
301299
gem update --system &&
302300
./bin/test-gem-install ./gems
303301
"
@@ -361,7 +359,7 @@ jobs:
361359
- uses: actions/checkout@v4
362360
- uses: actions/download-artifact@v3
363361
with:
364-
name: cruby-x86_64-linux-gem
362+
name: cruby-x86_64-linux-musl-gem
365363
path: gems
366364
- run: apk add build-base
367365
- run: ./bin/test-gem-install ./gems

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ group :development do
66
gem "minitest", "5.21.2"
77

88
gem "rake-compiler", "1.2.7"
9-
gem "rake-compiler-dock", "1.4.0"
9+
gem "rake-compiler-dock", "1.5.0.rc1"
1010

1111
gem "ruby_memcheck", "2.3.0" if Gem::Platform.local.os == "linux"
1212

rakelib/native.rake

+8-4
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,18 @@ require "yaml"
88

99
cross_rubies = ["3.3.0", "3.2.0", "3.1.0", "3.0.0"]
1010
cross_platforms = [
11-
"aarch64-linux",
12-
"arm-linux",
11+
"aarch64-linux-gnu",
12+
"aarch64-linux-musl",
13+
"arm-linux-gnu",
14+
"arm-linux-musl",
1315
"arm64-darwin",
1416
"x64-mingw-ucrt",
1517
"x64-mingw32",
16-
"x86-linux",
18+
"x86-linux-gnu",
19+
"x86-linux-musl",
1720
"x86_64-darwin",
18-
"x86_64-linux"
21+
"x86_64-linux-gnu",
22+
"x86_64-linux-musl"
1923
]
2024
ENV["RUBY_CC_VERSION"] = cross_rubies.join(":")
2125

0 commit comments

Comments
 (0)