@@ -155,22 +155,21 @@ jobs:
155
155
uses : actions/download-artifact@v3
156
156
with :
157
157
name : gem-ruby
158
- - name : Install source gem
159
- run : gem install --local *.gem --verbose
160
158
- name : Test source gem
161
159
run : |
160
+ gem install --local *.gem --verbose
162
161
cd test/rcd_test/
163
162
bundle install
164
163
ruby -rrcd_test -S rake test
165
164
166
- test_x86_64-linux-gnu-in -setup-ruby :
167
- name : x86_64-linux-gnu setup-ruby
165
+ test-x86_64-linux -setup-ruby :
166
+ name : " ${{ matrix.platform }} setup-ruby(${{ matrix.ruby }}) "
168
167
needs : build_native_gem
169
168
strategy :
170
169
fail-fast : false
171
170
matrix :
172
- ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
173
171
platform : [x86_64-linux, x86_64-linux-gnu]
172
+ ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
174
173
include :
175
174
- { ruby: "2.7", rubygems: "3.4.22" }
176
175
- { ruby: "2.6", rubygems: "3.4.22" }
@@ -186,96 +185,48 @@ jobs:
186
185
uses : actions/download-artifact@v3
187
186
with :
188
187
name : gem-${{ matrix.platform }}
189
- - name : Install gem-${{ matrix.platform }}
188
+ - name : Test gem-${{ matrix.platform }}
190
189
run : |
191
190
gem update --system ${{ matrix.rubygems }}
192
191
gem install --local *.gem --verbose
193
- - name : Run tests
194
- run : |
195
192
cd test/rcd_test/
196
193
bundle install
197
194
ruby -rrcd_test -S rake test
198
195
199
- test_x86_64-linux-gnu-in-docker :
200
- name : x86_64-linux-gnu docker
201
- needs : build_native_gem
202
- strategy :
203
- fail-fast : false
204
- matrix :
205
- ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
206
- platform : [x86_64-linux, x86_64-linux-gnu]
207
- include :
208
- - { ruby: "2.7", rubygems: "3.4.22" }
209
- - { ruby: "2.6", rubygems: "3.4.22" }
210
- - { ruby: "2.5", rubygems: "3.3.26" }
211
- - { ruby: "2.4", rubygems: "3.3.26" }
212
- runs-on : ubuntu-latest
213
- steps :
214
- - uses : actions/checkout@v3
215
- - name : Download gem-${{ matrix.platform }}
216
- uses : actions/download-artifact@v3
217
- with :
218
- name : gem-${{ matrix.platform }}
219
- - name : Run tests
220
- run : |
221
- docker run --rm -v $PWD:/work -w /work \
222
- ruby:${{ matrix.ruby }} \
223
- bash -c "
224
- gem update --system ${{ matrix.rubygems }} &&
225
- gem install --local *.gem --verbose &&
226
- cd test/rcd_test/ &&
227
- bundle install &&
228
- ruby -rrcd_test -S rake test
229
- "
230
-
231
- test_x86_64-linux-musl :
232
- name : x86_64-linux-musl
196
+ test_architecture_matrix :
197
+ name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
233
198
needs : build_native_gem
234
199
strategy :
235
200
fail-fast : false
236
201
matrix :
202
+ platform :
203
+ - arm-linux
204
+ - arm-linux-gnu
205
+ - arm-linux-musl
206
+ - x86-linux
207
+ - x86-linux-gnu
208
+ - x86-linux-musl
209
+ - x86_64-linux
210
+ - x86_64-linux-gnu
211
+ - x86_64-linux-musl
237
212
ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
238
- platform : [x86_64-linux-musl]
239
213
include :
214
+ # declare rubygems for each ruby version
240
215
- { ruby: "2.7", rubygems: "3.4.22" }
241
216
- { ruby: "2.6", rubygems: "3.4.22" }
242
217
- { ruby: "2.5", rubygems: "3.3.26" }
243
218
- { ruby: "2.4", rubygems: "3.3.26" }
244
- runs-on : ubuntu-latest
245
- steps :
246
- - uses : actions/checkout@v3
247
- - name : Download gem-${{ matrix.platform }}
248
- uses : actions/download-artifact@v3
249
- with :
250
- name : gem-${{ matrix.platform }}
251
- - name : Run tests
252
- run : |
253
- docker run --rm -v $PWD:/work -w /work \
254
- ruby:${{ matrix.ruby }}-alpine \
255
- sh -c "
256
- gem update --system ${{ matrix.rubygems }} &&
257
- gem install --local *.gem --verbose &&
258
- cd test/rcd_test/ &&
259
- bundle install &&
260
- ruby -rrcd_test -S rake test
261
- "
262
-
263
- test_x86-linux-gnu :
264
- name : x86-linux-gnu
265
- needs : build_native_gem
266
- strategy :
267
- fail-fast : false
268
- matrix :
269
- ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
270
- platform : [x86-linux]
271
- include :
272
- # ruby 3.0 and earlier ship rubygems < 3.2.33, so can't recognize the -gnu suffix
273
- - ruby : " 3.3"
274
- platform : x86-linux-gnu
275
- - ruby : " 3.2"
276
- platform : x86-linux-gnu
277
- - ruby : " 3.1"
278
- platform : x86-linux-gnu
219
+ # declare docker image for each platform
220
+ - { platform: arm-linux-musl, docker_tag: "-alpine" }
221
+ - { platform: x86-linux-musl, docker_tag: "-alpine" }
222
+ - { platform: x86_64-linux-musl, docker_tag: "-alpine" }
223
+ # declare docker platform for each platform
224
+ - { platform: arm-linux, docker_platform: "--platform=linux/arm/v7" }
225
+ - { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
226
+ - { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
227
+ - { platform: x86-linux, docker_platform: "--platform=linux/386" }
228
+ - { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
229
+ - { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
279
230
runs-on : ubuntu-latest
280
231
steps :
281
232
- uses : actions/checkout@v3
@@ -287,97 +238,9 @@ jobs:
287
238
run : |
288
239
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
289
240
docker run --rm -v $PWD:/work -w /work \
290
- --platform=linux/386 ruby:${{ matrix.ruby }} \
291
- sh -c "
292
- gem install --local *.gem --verbose &&
293
- cd test/rcd_test/ &&
294
- bundle install &&
295
- ruby -rrcd_test -S rake test
296
- "
297
-
298
- test_x86-linux-musl :
299
- name : x86-linux-musl
300
- needs : build_native_gem
301
- strategy :
302
- fail-fast : false
303
- matrix :
304
- ruby : ["3.3", "3.2", "3.1", "3.0", "2.7"] # ruby:2.6-alpine and earlier ship with rubygems that doesn't recognize the -musl suffix
305
- platform : [x86-linux-musl]
306
- runs-on : ubuntu-latest
307
- steps :
308
- - uses : actions/checkout@v3
309
- - name : Download gem-${{ matrix.platform }}
310
- uses : actions/download-artifact@v3
311
- with :
312
- name : gem-${{ matrix.platform }}
313
- - name : Run tests
314
- run : |
315
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
316
- docker run --rm -v $PWD:/work -w /work \
317
- --platform=linux/386 ruby:${{ matrix.ruby }}-alpine \
318
- sh -c "
319
- gem install --local *.gem --verbose &&
320
- cd test/rcd_test/ &&
321
- bundle install &&
322
- ruby -rrcd_test -S rake test
323
- "
324
-
325
- test_arm-linux-gnu :
326
- name : arm-linux-gnu
327
- needs : build_native_gem
328
- strategy :
329
- fail-fast : false
330
- matrix :
331
- ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
332
- platform : [arm-linux]
333
- include :
334
- # ruby 3.0 and earlier ship rubygems < 3.2.33, so can't recognize the -gnu suffix
335
- - ruby : " 3.3"
336
- platform : arm-linux-gnu
337
- - ruby : " 3.2"
338
- platform : arm-linux-gnu
339
- - ruby : " 3.1"
340
- platform : arm-linux-gnu
341
- runs-on : ubuntu-latest
342
- steps :
343
- - uses : actions/checkout@v3
344
- - name : Download gem-${{ matrix.platform }}
345
- uses : actions/download-artifact@v3
346
- with :
347
- name : gem-${{ matrix.platform }}
348
- - name : Run tests
349
- run : |
350
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
351
- docker run --rm -v $PWD:/work -w /work \
352
- --platform=linux/arm/v7 ruby:${{ matrix.ruby }} \
353
- sh -c "
354
- gem install --local *.gem --verbose &&
355
- cd test/rcd_test/ &&
356
- bundle install &&
357
- ruby -rrcd_test -S rake test
358
- "
359
-
360
- test_arm-linux-musl :
361
- name : arm-linux-musl
362
- needs : build_native_gem
363
- strategy :
364
- fail-fast : false
365
- matrix :
366
- ruby : ["3.3", "3.2", "3.1"] # TODO can we update rubygems and get earlier images working?
367
- platform : [arm-linux-musl]
368
- runs-on : ubuntu-latest
369
- steps :
370
- - uses : actions/checkout@v3
371
- - name : Download gem-${{ matrix.platform }}
372
- uses : actions/download-artifact@v3
373
- with :
374
- name : gem-${{ matrix.platform }}
375
- - name : Run tests
376
- run : |
377
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
378
- docker run --rm -v $PWD:/work -w /work \
379
- --platform=linux/arm/v7 ruby:${{ matrix.ruby }}-alpine \
241
+ ${{ matrix.docker_platform}} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
380
242
sh -c "
243
+ gem update --system ${{ matrix.rubygems }} &&
381
244
gem install --local *.gem --verbose &&
382
245
cd test/rcd_test/ &&
383
246
bundle install &&
0 commit comments