18
18
- ' *'
19
19
20
20
jobs :
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
+
21
29
#
22
30
# basic tests
23
31
#
@@ -45,12 +53,12 @@ jobs:
45
53
- run : bundle exec rake test
46
54
47
55
test :
48
- needs : basic
56
+ needs : [ basic, ruby_versions]
49
57
strategy :
50
58
fail-fast : false
51
59
matrix :
52
60
os : [ubuntu, macos, windows]
53
- ruby : ["3.3", "3.2", "3.1"]
61
+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
54
62
syslib : [enable, disable]
55
63
include :
56
64
# additional compilation flags for homebrew
@@ -117,12 +125,12 @@ jobs:
117
125
bundle exec rake test
118
126
119
127
sqlcipher :
120
- needs : basic
128
+ needs : [ basic, ruby_versions]
121
129
strategy :
122
130
fail-fast : false
123
131
matrix :
124
132
os : [ubuntu, macos, windows]
125
- ruby : ["3.3", "3.1"] # oldest and newest
133
+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
126
134
include :
127
135
- { os: windows, ruby: mingw }
128
136
- { os: windows, ruby: mswin }
@@ -207,13 +215,13 @@ jobs:
207
215
retention-days : 1
208
216
209
217
install_source_linux :
210
- needs : build_source_gem
218
+ needs : [ build_source_gem, ruby_versions]
211
219
name : " test source"
212
220
strategy :
213
221
fail-fast : false
214
222
matrix :
215
223
os : [ubuntu, macos, windows]
216
- ruby : ["3.3", "3.2", "3.1"]
224
+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
217
225
syslib : [enable, disable]
218
226
include :
219
227
# additional compilation flags for homebrew
@@ -270,7 +278,7 @@ jobs:
270
278
271
279
test_architecture_matrix :
272
280
name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
273
- needs : build_native_gem
281
+ needs : [ build_native_gem, ruby_versions]
274
282
strategy :
275
283
fail-fast : false
276
284
matrix :
@@ -283,7 +291,7 @@ jobs:
283
291
- x86-linux-musl
284
292
- x86_64-linux-gnu
285
293
- x86_64-linux-musl
286
- ruby : ["3.3", "3.2", "3.1"]
294
+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.image_tag) }}
287
295
include :
288
296
# declare docker image for each platform
289
297
- { platform: aarch64-linux-musl, docker_tag: "-alpine", bootstrap: "apk add build-base &&" }
@@ -315,25 +323,18 @@ jobs:
315
323
316
324
test_the_rest :
317
325
name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
318
- needs : build_native_gem
326
+ needs : [ build_native_gem, ruby_versions]
319
327
strategy :
320
328
fail-fast : false
321
329
matrix :
322
330
os : [windows-latest, macos-13, macos-14]
323
- ruby : ["3.3", "3.2", "3.1"]
331
+ ruby : ${{ fromJSON(needs.ruby_versions.outputs.setup_ruby) }}
324
332
include :
325
333
- os : macos-13
326
334
platform : x86_64-darwin
327
335
- os : macos-14
328
336
platform : arm64-darwin
329
337
- 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"
337
338
platform : x64-mingw-ucrt
338
339
runs-on : ${{ matrix.os }}
339
340
steps :
@@ -360,6 +361,7 @@ jobs:
360
361
- { ruby: "3.2", flavor: "alpine3.19" }
361
362
- { ruby: "3.3", flavor: "alpine3.18" }
362
363
- { ruby: "3.3", flavor: "alpine3.19" }
364
+ - { ruby: "3.4-rc", flavor: "alpine" }
363
365
runs-on : ubuntu-latest
364
366
container :
365
367
image : ruby:${{matrix.ruby}}-${{matrix.flavor}}
0 commit comments