Skip to content

Commit 1cd8ce5

Browse files
committed
wip: merge the matrixes for all the platforms
1 parent 4dbad4d commit 1cd8ce5

File tree

1 file changed

+31
-168
lines changed

1 file changed

+31
-168
lines changed

.github/workflows/ci.yml

Lines changed: 31 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -155,22 +155,21 @@ jobs:
155155
uses: actions/download-artifact@v3
156156
with:
157157
name: gem-ruby
158-
- name: Install source gem
159-
run: gem install --local *.gem --verbose
160158
- name: Test source gem
161159
run: |
160+
gem install --local *.gem --verbose
162161
cd test/rcd_test/
163162
bundle install
164163
ruby -rrcd_test -S rake test
165164
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 }})"
168167
needs: build_native_gem
169168
strategy:
170169
fail-fast: false
171170
matrix:
172-
ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
173171
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"]
174173
include:
175174
- { ruby: "2.7", rubygems: "3.4.22" }
176175
- { ruby: "2.6", rubygems: "3.4.22" }
@@ -186,96 +185,48 @@ jobs:
186185
uses: actions/download-artifact@v3
187186
with:
188187
name: gem-${{ matrix.platform }}
189-
- name: Install gem-${{ matrix.platform }}
188+
- name: Test gem-${{ matrix.platform }}
190189
run: |
191190
gem update --system ${{ matrix.rubygems }}
192191
gem install --local *.gem --verbose
193-
- name: Run tests
194-
run: |
195192
cd test/rcd_test/
196193
bundle install
197194
ruby -rrcd_test -S rake test
198195
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 }}"
233198
needs: build_native_gem
234199
strategy:
235200
fail-fast: false
236201
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
237212
ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
238-
platform: [x86_64-linux-musl]
239213
include:
214+
# declare rubygems for each ruby version
240215
- { ruby: "2.7", rubygems: "3.4.22" }
241216
- { ruby: "2.6", rubygems: "3.4.22" }
242217
- { ruby: "2.5", rubygems: "3.3.26" }
243218
- { 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" }
279230
runs-on: ubuntu-latest
280231
steps:
281232
- uses: actions/checkout@v3
@@ -287,97 +238,9 @@ jobs:
287238
run: |
288239
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
289240
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 }} \
380242
sh -c "
243+
gem update --system ${{ matrix.rubygems }} &&
381244
gem install --local *.gem --verbose &&
382245
cd test/rcd_test/ &&
383246
bundle install &&

0 commit comments

Comments
 (0)