2121jobs :
2222 ruby_versions :
2323 outputs :
24- setup_ruby : " ['3.1', '3.2', '3.3', '3.4']"
25- image_tag : " ['3.1', '3.2', '3.3', '3.4']"
24+ # these are usually the same, but are different once we get to ruby release candidates
25+ setup_ruby : " ['3.2', '3.3', '3.4', 'head']"
26+ image_tag : " ['3.2', '3.3', '3.4', '4.0.0-preview2']"
2627 runs-on : ubuntu-latest
2728 steps :
2829 - run : echo "generating rubies ..."
3637 - uses : ruby/setup-ruby@v1
3738 with :
3839 working-directory : precompiled
39- ruby-version : " 3.3 "
40+ ruby-version : " 3.4 "
4041 bundler-cache : true
4142 bundler : latest
4243 - id : rcd_image_version
@@ -48,10 +49,16 @@ jobs:
4849 strategy :
4950 fail-fast : false
5051 matrix :
51- runs-on : ["ubuntu-latest", "macos-13 ", "windows-latest"]
52+ runs-on : ["ubuntu-latest", "macos-latest ", "windows-latest"]
5253 ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
5354 runs-on : ${{matrix.runs-on}}
5455 steps :
56+ # git crlf needed to apply patches cleanly on windows runners
57+ - name : configure git crlf
58+ if : matrix.runs-on == 'windows-latest'
59+ run : |
60+ git config --system core.autocrlf false
61+ git config --system core.eol lf
5562 - uses : actions/checkout@v4
5663 - uses : ruby/setup-ruby@v1
5764 with :
7683 - uses : ruby/setup-ruby@v1
7784 with :
7885 working-directory : precompiled
79- ruby-version : " 3.3 "
86+ ruby-version : " 3.4 "
8087 bundler-cache : true
8188 - run : ./bin/test-gem-build gems ruby
8289 working-directory : precompiled
9198 strategy :
9299 fail-fast : false
93100 matrix :
94- os : ["ubuntu-latest", "macos-13 ", "windows-latest"]
101+ os : ["ubuntu-latest", "macos-15 ", "windows-latest"]
95102 ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
96103 runs-on : ${{ matrix.os }}
97104 steps :
@@ -118,13 +125,13 @@ jobs:
118125 - " aarch64-linux-musl"
119126 - " arm-linux-gnu"
120127 - " arm-linux-musl"
128+ - " arm64-darwin"
129+ - " x64-mingw-ucrt"
121130 - " x86-linux-gnu"
122131 - " x86-linux-musl"
132+ - " x86_64-darwin"
123133 - " x86_64-linux-gnu"
124134 - " x86_64-linux-musl"
125- - " arm64-darwin"
126- - " x86_64-darwin"
127- - " x64-mingw-ucrt"
128135 runs-on : ubuntu-latest
129136 steps :
130137 - uses : actions/checkout@v4
@@ -158,27 +165,27 @@ jobs:
158165 - " x86_64-linux-musl"
159166 ruby : ${{ fromJSON(needs.ruby_versions.outputs.image_tag) }}
160167 include :
168+ - { runon: "ubuntu-latest", platform: x86_64-linux-gnu }
161169 # declare docker image for each platform
162- - { platform: aarch64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
163- - { platform: arm-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
164- - { platform: x86-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
165- - { platform: x86_64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
170+ - { runon: "ubuntu-latest", platform: aarch64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
171+ - { runon: "ubuntu-latest", platform: arm-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
172+ - { runon: "ubuntu-latest", platform: x86-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
173+ - { runon: "ubuntu-latest", platform: x86_64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add bash &&" }
166174 # declare docker platform for each platform
167- - { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
168- - { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
169- - { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
170- - { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
171- - { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
172- - { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
173- runs-on : ubuntu-latest
175+ - { runon: "ubuntu-24.04-arm", platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
176+ - { runon: "ubuntu-24.04-arm", platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
177+ - { runon: "ubuntu-24.04-arm", platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
178+ - { runon: "ubuntu-24.04-arm", platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
179+ - { runon: "ubuntu-latest", platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
180+ - { runon: "ubuntu-latest", platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
181+ runs-on : ${{ matrix.runon }}
174182 steps :
175183 - uses : actions/checkout@v4
176184 - uses : actions/download-artifact@v4
177185 with :
178186 name : cruby-${{ matrix.platform }}-gem
179187 path : precompiled/gems
180188 - run : |
181- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
182189 docker run --rm -v $PWD/precompiled:/precompiled -w /precompiled \
183190 ${{ matrix.docker_platform }} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
184191 sh -c "
@@ -197,8 +204,8 @@ jobs:
197204 - x86_64-darwin
198205 ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
199206 include :
200- - { platform: arm64-darwin, os: macos-14 }
201- - { platform: x86_64-darwin, os: macos-13 }
207+ - { platform: arm64-darwin, os: macos-15 }
208+ - { platform: x86_64-darwin, os: macos-15-intel }
202209 runs-on : ${{matrix.os}}
203210 steps :
204211 - uses : actions/checkout@v4
0 commit comments