1818 - ' *'
1919
2020jobs :
21+ ruby_versions :
22+ outputs :
23+ setup_ruby : " ['3.1', '3.2', '3.3', 'head']"
24+ image_tag : " ['3.1', '3.2', '3.3', '3.4-rc']"
25+ runs-on : ubuntu-latest
26+ steps :
27+ - run : echo "generating rubies ..."
28+
2129 #
2230 # basic tests
2331 #
@@ -45,12 +53,12 @@ jobs:
4553 - run : bundle exec rake test
4654
4755 test :
48- needs : basic
56+ needs : [ basic, ruby_versions]
4957 strategy :
5058 fail-fast : false
5159 matrix :
5260 os : [ubuntu, macos, windows]
53- ruby : ["3.3", "3.2", "3.1"]
61+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
5462 syslib : [enable, disable]
5563 include :
5664 # additional compilation flags for homebrew
@@ -117,12 +125,12 @@ jobs:
117125 bundle exec rake test
118126
119127 sqlcipher :
120- needs : basic
128+ needs : [ basic, ruby_versions]
121129 strategy :
122130 fail-fast : false
123131 matrix :
124132 os : [ubuntu, macos, windows]
125- ruby : ["3.3", "3.1"] # oldest and newest
133+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
126134 include :
127135 - { os: windows, ruby: mingw }
128136 - { os: windows, ruby: mswin }
@@ -207,13 +215,13 @@ jobs:
207215 retention-days : 1
208216
209217 install_source_linux :
210- needs : build_source_gem
218+ needs : [ build_source_gem, ruby_versions]
211219 name : " test source"
212220 strategy :
213221 fail-fast : false
214222 matrix :
215223 os : [ubuntu, macos, windows]
216- ruby : ["3.3", "3.2", "3.1"]
224+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
217225 syslib : [enable, disable]
218226 include :
219227 # additional compilation flags for homebrew
@@ -270,7 +278,7 @@ jobs:
270278
271279 test_architecture_matrix :
272280 name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
273- needs : build_native_gem
281+ needs : [ build_native_gem, ruby_versions]
274282 strategy :
275283 fail-fast : false
276284 matrix :
@@ -283,7 +291,7 @@ jobs:
283291 - x86-linux-musl
284292 - x86_64-linux-gnu
285293 - x86_64-linux-musl
286- ruby : ["3.3", "3.2", "3.1"]
294+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.image_tag) }}
287295 include :
288296 # declare docker image for each platform
289297 - { platform: aarch64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
@@ -315,25 +323,18 @@ jobs:
315323
316324 test_the_rest :
317325 name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
318- needs : build_native_gem
326+ needs : [ build_native_gem, ruby_versions]
319327 strategy :
320328 fail-fast : false
321329 matrix :
322330 os : [windows-latest, macos-13, macos-14]
323- ruby : ["3.3", "3.2", "3.1"]
331+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
324332 include :
325333 - os : macos-13
326334 platform : x86_64-darwin
327335 - os : macos-14
328336 platform : arm64-darwin
329337 - os : windows-latest
330- ruby : " 3.1"
331- platform : x64-mingw-ucrt
332- - os : windows-latest
333- ruby : " 3.2"
334- platform : x64-mingw-ucrt
335- - os : windows-latest
336- ruby : " 3.3"
337338 platform : x64-mingw-ucrt
338339 runs-on : ${{ matrix.os }}
339340 steps :
@@ -360,6 +361,7 @@ jobs:
360361 - { ruby: "3.2", flavor: "alpine3.19" }
361362 - { ruby: "3.3", flavor: "alpine3.18" }
362363 - { ruby: "3.3", flavor: "alpine3.19" }
364+ - { ruby: "3.4-rc", flavor: "alpine" }
363365 runs-on : ubuntu-latest
364366 container :
365367 image : ruby:${{matrix.ruby}}-${{matrix.flavor}}
0 commit comments