@@ -45,18 +45,26 @@ jobs:
45
45
fail-fast : false
46
46
matrix :
47
47
include :
48
- - platform : aarch64-linux
49
- - platform : arm-linux
48
+ - platform : aarch64-linux-gnu
49
+ alias : aarch64-linux
50
+ - platform : aarch64-linux-musl
51
+ - platform : arm-linux-gnu
52
+ alias : arm-linux
53
+ - platform : arm-linux-musl
50
54
- platform : arm64-darwin
51
55
- platform : jruby
52
56
- platform : x64-mingw-ucrt
53
57
static : true
54
58
- platform : x64-mingw32
55
59
static : true
56
- - platform : x86-linux
60
+ - platform : x86-linux-gnu
61
+ alias : x86-linux
62
+ - platform : x86-linux-musl
57
63
- platform : x86-mingw32
58
64
- platform : x86_64-darwin
59
- - platform : x86_64-linux
65
+ - platform : x86_64-linux-gnu
66
+ alias : x86_64-linux
67
+ - platform : x86_64-linux-musl
60
68
runs-on : ubuntu-latest
61
69
steps :
62
70
- uses : actions/checkout@v3
@@ -114,23 +122,29 @@ jobs:
114
122
name : gem-${{ matrix.platform }}-static
115
123
path : test/rcd_test/pkg/*-*-*.gem
116
124
125
+ - if : matrix.alias
126
+ name : Build native gem ${{ matrix.alias }}
127
+ run : |
128
+ cd test/rcd_test/
129
+ bundle install
130
+ bundle exec rake clean clobber
131
+ bundle exec rake gem:${{ matrix.alias }}
132
+
133
+ - if : matrix.alias
134
+ name : Upload native gem ${{ matrix.alias }}
135
+ uses : actions/upload-artifact@v3
136
+ with :
137
+ name : gem-${{ matrix.alias }}
138
+ path : test/rcd_test/pkg/*-*-*.gem
139
+
117
140
test_source_gem :
118
- name : test source
141
+ name : source gem
119
142
needs : build_source_gem
120
143
strategy :
121
144
fail-fast : false
122
145
matrix :
123
- os :
124
- - ubuntu
125
- ruby :
126
- - " 3.3"
127
- - " 3.2"
128
- - " 3.1"
129
- - " 3.0"
130
- - " 2.7"
131
- - " 2.6"
132
- - " 2.5"
133
- - " 2.4"
146
+ os : [ubuntu]
147
+ ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
134
148
runs-on : ${{ matrix.os }}-latest
135
149
steps :
136
150
- uses : actions/checkout@v3
@@ -141,37 +155,117 @@ jobs:
141
155
uses : actions/download-artifact@v3
142
156
with :
143
157
name : gem-ruby
144
- - name : Install source gem
145
- run : gem install --local *.gem --verbose
146
158
- name : Test source gem
147
159
run : |
160
+ gem install --local *.gem --verbose
148
161
cd test/rcd_test/
149
162
bundle install
150
163
ruby -rrcd_test -S rake test
151
164
152
- test_native_gem :
153
- name : test native
165
+ test-x86_64-linux-setup-ruby :
166
+ name : " ${{ matrix.platform }} setup-ruby(${{ matrix.ruby }}) "
154
167
needs : build_native_gem
155
168
strategy :
156
169
fail-fast : false
157
170
matrix :
158
- os :
159
- - macos
160
- - ubuntu
161
- ruby :
162
- - " 3.3"
163
- - " 3.2"
164
- - " 3.1"
165
- - " 3.0"
166
- - " 2.7"
167
- - " 2.6"
168
- - " 2.5"
169
- - " 2.4"
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"]
173
+ include :
174
+ # declare rubygems for each ruby version
175
+ - { ruby: "2.7", rubygems: "3.4.22" }
176
+ - { ruby: "2.6", rubygems: "3.4.22" }
177
+ - { ruby: "2.5", rubygems: "3.3.26" }
178
+ - { ruby: "2.4", rubygems: "3.3.26" }
179
+ runs-on : ubuntu-latest
180
+ steps :
181
+ - uses : actions/checkout@v3
182
+ - uses : ruby/setup-ruby@v1
183
+ with :
184
+ ruby-version : ${{ matrix.ruby }}
185
+ - name : Download gem-${{ matrix.platform }}
186
+ uses : actions/download-artifact@v3
187
+ with :
188
+ name : gem-${{ matrix.platform }}
189
+ - name : Test gem-${{ matrix.platform }}
190
+ run : |
191
+ gem update --system ${{ matrix.rubygems }}
192
+ gem install --local *.gem --verbose
193
+ cd test/rcd_test/
194
+ bundle install
195
+ ruby -rrcd_test -S rake test
196
+
197
+ test_architecture_matrix :
198
+ name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
199
+ needs : build_native_gem
200
+ strategy :
201
+ fail-fast : false
202
+ matrix :
203
+ platform :
204
+ - aarch64-linux
205
+ - aarch64-linux-gnu
206
+ - aarch64-linux-musl
207
+ - arm-linux
208
+ - arm-linux-gnu
209
+ - arm-linux-musl
210
+ - x86-linux
211
+ - x86-linux-gnu
212
+ - x86-linux-musl
213
+ - x86_64-linux
214
+ - x86_64-linux-gnu
215
+ - x86_64-linux-musl
216
+ ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
217
+ include :
218
+ # declare rubygems for each ruby version
219
+ - { ruby: "2.7", rubygems: "3.4.22" }
220
+ - { ruby: "2.6", rubygems: "3.4.22" }
221
+ - { ruby: "2.5", rubygems: "3.3.26" }
222
+ - { ruby: "2.4", rubygems: "3.3.26" }
223
+ # declare docker image for each platform
224
+ - { platform: aarch64-linux-musl, docker_tag: "-alpine" }
225
+ - { platform: arm-linux-musl, docker_tag: "-alpine" }
226
+ - { platform: x86-linux-musl, docker_tag: "-alpine" }
227
+ - { platform: x86_64-linux-musl, docker_tag: "-alpine" }
228
+ # declare docker platform for each platform
229
+ - { platform: aarch64-linux, docker_platform: "--platform=linux/arm64" }
230
+ - { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" }
231
+ - { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" }
232
+ - { platform: arm-linux, docker_platform: "--platform=linux/arm/v7" }
233
+ - { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" }
234
+ - { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" }
235
+ - { platform: x86-linux, docker_platform: "--platform=linux/386" }
236
+ - { platform: x86-linux-gnu, docker_platform: "--platform=linux/386" }
237
+ - { platform: x86-linux-musl, docker_platform: "--platform=linux/386" }
238
+ runs-on : ubuntu-latest
239
+ steps :
240
+ - uses : actions/checkout@v3
241
+ - name : Download gem-${{ matrix.platform }}
242
+ uses : actions/download-artifact@v3
243
+ with :
244
+ name : gem-${{ matrix.platform }}
245
+ - name : Run tests
246
+ run : |
247
+ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
248
+ docker run --rm -v $PWD:/work -w /work \
249
+ ${{ matrix.docker_platform}} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
250
+ sh -c "
251
+ gem update --system ${{ matrix.rubygems }} &&
252
+ gem install --local *.gem --verbose &&
253
+ cd test/rcd_test/ &&
254
+ bundle install &&
255
+ ruby -rrcd_test -S rake test
256
+ "
257
+
258
+ test_the_rest :
259
+ name : " ${{ matrix.platform }} ${{ matrix.ruby }}"
260
+ needs : build_native_gem
261
+ strategy :
262
+ fail-fast : false
263
+ matrix :
264
+ os : [macos]
265
+ ruby : ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
170
266
include :
171
267
- os : macos
172
268
platform : x86_64-darwin
173
- - os : ubuntu
174
- platform : x86_64-linux
175
269
- os : ubuntu
176
270
ruby : jruby
177
271
platform : jruby
@@ -213,16 +307,15 @@ jobs:
213
307
uses : actions/download-artifact@v3
214
308
with :
215
309
name : gem-${{ matrix.platform }}
216
- - name : Install gem-${{ matrix.platform }}
217
- run : gem install --local *.gem --verbose
218
- - name : Run tests
310
+ - name : Test gem-${{ matrix.platform }}
219
311
run : |
312
+ gem install --local *.gem --verbose
220
313
cd test/rcd_test/
221
314
bundle install
222
315
ruby -rrcd_test -S rake test
223
316
224
- test_static_native_gem :
225
- name : test static
317
+ test_windows_static :
318
+ name : " static ${{ matrix.platform }} ${{ matrix.ruby }} "
226
319
needs : build_native_gem
227
320
strategy :
228
321
fail-fast : false
@@ -266,35 +359,37 @@ jobs:
266
359
uses : actions/download-artifact@v3
267
360
with :
268
361
name : gem-${{ matrix.platform }}-static
269
- - name : Install gem-${{ matrix.platform }}-static
270
- run : gem install --local *.gem --verbose
271
- - name : Run tests
362
+ - name : Test gem-${{ matrix.platform }}-static
272
363
run : |
364
+ gem install --local *.gem --verbose
273
365
cd test/rcd_test/
274
366
bundle install
275
367
ruby -rrcd_test -S rake test
276
368
277
- test_native_gem_multiarch :
278
- name : ${{ matrix.platform }} on ${{ matrix.from_image }}
369
+ test_ad_hoc :
370
+ name : " ${{ matrix.platform }} on ${{ matrix.from_image }}"
279
371
needs : build_native_gem
280
372
strategy :
281
373
fail-fast : false
282
374
matrix :
283
375
include :
284
376
- from_image : amd64/centos
285
- platform : x86_64-linux
377
+ platform : x86_64-linux # centos-8 ships ruby 2.5, rubygems won't recognize -gnu suffix
286
378
dockerfile : centos
287
379
- from_image : navikey/raspbian-bullseye
288
- platform : arm-linux
380
+ platform : arm-linux # bullseye ships ruby 2.7, rubygems won't recognize -gnu suffix
289
381
dockerfile : debian
290
382
- from_image : arm64v8/ubuntu
291
- platform : aarch64-linux
383
+ platform : aarch64-linux # arm64v8 ships ruby 3.0, rubygems won't recognize -gnu suffix
292
384
dockerfile : debian
293
385
- from_image : i386/alpine
294
- platform : x86-linux
386
+ platform : x86-linux-musl
295
387
dockerfile : alpine
296
388
- from_image : arm32v6/alpine
297
- platform : arm-linux
389
+ platform : arm-linux-musl
390
+ dockerfile : alpine
391
+ - from_image : alpine
392
+ platform : x86_64-linux-musl
298
393
dockerfile : alpine
299
394
runs-on : ubuntu-latest
300
395
steps :
0 commit comments