From 30c9194670682ceda59d493554fd303fba2b464b Mon Sep 17 00:00:00 2001 From: Jacob Steves Date: Thu, 3 Sep 2026 11:37:24 -0400 Subject: [PATCH 1/2] exclude arm-linux-musl from build-native-gems as cranelift doesnt support 32-bit archs --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c48d3f3d..a5f43227 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,11 +21,11 @@ jobs: with: supported-ruby-platforms: | # Excluding: - # `arm-linux`: Cranelift doesn't support 32-bit architectures + # `arm-linux` and `arm-linux-musl`: Cranelift doesn't support 32-bit architectures # `x64-mingw32`: `x64-mingw-ucrt` should be used for Ruby 3.1+ (https://github.com/rake-compiler/rake-compiler-dock?tab=readme-ov-file#windows) # 3.0 is deprecated as stable ruby version according to: # https://github.com/oxidize-rb/actions/blob/main/fetch-ci-data/evaluate.rb#L54 - exclude: [arm-linux, x64-mingw32] + exclude: [arm-linux, arm-linux-musl, x64-mingw32] stable-ruby-versions: | exclude: [head] From 526635d75ad0972819371992aad6e5e96794e1ab Mon Sep 17 00:00:00 2001 From: Jacob Steves Date: Thu, 3 Sep 2026 11:40:30 -0400 Subject: [PATCH 2/2] build a reusable workflow for using a native gem matrix --- .github/workflows/build-gems.yml | 17 +-------------- .github/workflows/native-gem-matrix.yml | 28 +++++++++++++++++++++++++ .github/workflows/release.yml | 17 +-------------- 3 files changed, 30 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/native-gem-matrix.yml diff --git a/.github/workflows/build-gems.yml b/.github/workflows/build-gems.yml index 05a3460c..b703e614 100644 --- a/.github/workflows/build-gems.yml +++ b/.github/workflows/build-gems.yml @@ -12,22 +12,7 @@ concurrency: jobs: ci-data: - runs-on: ubuntu-latest - outputs: - result: ${{ steps.fetch.outputs.result }} - steps: - - id: fetch - uses: oxidize-rb/actions/fetch-ci-data@1.4.3 - with: - supported-ruby-platforms: | - # Excluding: - # `arm-linux` and `arm-linux-musl`: Cranelift doesn't support 32-bit architectures - # `x64-mingw32`: `x64-mingw-ucrt` should be used for Ruby 3.1+ (https://github.com/rake-compiler/rake-compiler-dock?tab=readme-ov-file#windows) - # 3.0 is deprecated as stable ruby version according to: - # https://github.com/oxidize-rb/actions/blob/main/fetch-ci-data/evaluate.rb#L54 - exclude: [arm-linux, arm-linux-musl, x64-mingw32] - stable-ruby-versions: | - exclude: [head] + uses: ./.github/workflows/native-gem-matrix.yml native: name: Build native gems diff --git a/.github/workflows/native-gem-matrix.yml b/.github/workflows/native-gem-matrix.yml new file mode 100644 index 00000000..3d2aa7b4 --- /dev/null +++ b/.github/workflows/native-gem-matrix.yml @@ -0,0 +1,28 @@ +--- +name: Native gem matrix + +on: + workflow_call: + outputs: + result: + description: Supported Ruby platforms and stable Ruby versions + value: ${{ jobs.resolve.outputs.result }} + +jobs: + resolve: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.fetch.outputs.result }} + steps: + - id: fetch + uses: oxidize-rb/actions/fetch-ci-data@1.4.3 + with: + supported-ruby-platforms: | + # Excluding: + # `arm-linux` and `arm-linux-musl`: Cranelift doesn't support 32-bit architectures + # `x64-mingw32`: `x64-mingw-ucrt` should be used for Ruby 3.1+ (https://github.com/rake-compiler/rake-compiler-dock?tab=readme-ov-file#windows) + # 3.0 is deprecated as stable ruby version according to: + # https://github.com/oxidize-rb/actions/blob/main/fetch-ci-data/evaluate.rb#L54 + exclude: [arm-linux, arm-linux-musl, x64-mingw32] + stable-ruby-versions: | + exclude: [head] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a5f43227..b4c7b581 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,22 +12,7 @@ concurrency: jobs: ci-data: - runs-on: ubuntu-latest - outputs: - result: ${{ steps.fetch.outputs.result }} - steps: - - id: fetch - uses: oxidize-rb/actions/fetch-ci-data@1.4.3 - with: - supported-ruby-platforms: | - # Excluding: - # `arm-linux` and `arm-linux-musl`: Cranelift doesn't support 32-bit architectures - # `x64-mingw32`: `x64-mingw-ucrt` should be used for Ruby 3.1+ (https://github.com/rake-compiler/rake-compiler-dock?tab=readme-ov-file#windows) - # 3.0 is deprecated as stable ruby version according to: - # https://github.com/oxidize-rb/actions/blob/main/fetch-ci-data/evaluate.rb#L54 - exclude: [arm-linux, arm-linux-musl, x64-mingw32] - stable-ruby-versions: | - exclude: [head] + uses: ./.github/workflows/native-gem-matrix.yml build: name: Build native gems