Skip to content

Commit b569836

Browse files
committed
ci: unify installation testing into a single matrix
which is a prefactor to re-using that flow in an automated release pipeline
1 parent c7c74ac commit b569836

File tree

1 file changed

+44
-119
lines changed

1 file changed

+44
-119
lines changed

.github/workflows/gem-install.yml

Lines changed: 44 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ on:
1717

1818
jobs:
1919
package:
20+
name: "package (${{ matrix.platform }})"
2021
strategy:
2122
fail-fast: false
2223
matrix:
2324
platform:
2425
- "ruby"
25-
- "x64-mingw32"
26+
- "aarch64-linux-gnu"
27+
- "aarch64-linux-musl"
28+
- "arm64-darwin"
2629
- "x64-mingw-ucrt"
30+
- "x64-mingw32"
2731
- "x86_64-darwin"
28-
- "arm64-darwin"
2932
- "x86_64-linux-gnu"
3033
- "x86_64-linux-musl"
31-
- "aarch64-linux-gnu"
32-
- "aarch64-linux-musl"
3334
runs-on: ubuntu-latest
3435
steps:
3536
- uses: actions/checkout@v4
@@ -60,127 +61,51 @@ jobs:
6061
- run: "gem install pkg/tailwindcss-ruby-*.gem"
6162
- run: "tailwindcss 2>&1 | fgrep 'ERROR: Cannot find the tailwindcss executable'"
6263

63-
linux-x86_64-gnu-install:
64-
needs: ["package"]
65-
runs-on: ubuntu-latest
66-
steps:
67-
- uses: ruby/setup-ruby@v1
68-
with:
69-
ruby-version: "3.2"
70-
- uses: actions/download-artifact@v4
71-
with:
72-
name: gem-x86_64-linux-gnu
73-
path: pkg
74-
- run: "gem install pkg/tailwindcss-ruby-*.gem"
75-
- run: "tailwindcss --help"
76-
77-
linux-x86_64-musl-install:
78-
needs: ["package"]
79-
runs-on: ubuntu-latest
80-
steps:
81-
- uses: actions/download-artifact@v4
82-
with:
83-
name: gem-x86_64-linux-musl
84-
path: pkg
85-
- run: |
86-
docker run --rm -v $PWD:/tailwindcss-ruby -w /tailwindcss-ruby \
87-
ruby:3.2-alpine \
88-
sh -c "
89-
apk add build-base
90-
gem install pkg/tailwindcss-ruby-*.gem
91-
tailwindcss --help
92-
"
93-
94-
linux-aarch64-gnu-install:
95-
needs: ["package"]
96-
runs-on: ubuntu-latest
97-
steps:
98-
- uses: ruby/setup-ruby@v1
99-
with:
100-
ruby-version: "3.2"
101-
- uses: actions/download-artifact@v4
102-
with:
103-
name: gem-aarch64-linux-gnu
104-
path: pkg
105-
- run: |
106-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
107-
docker run --rm -v $PWD:/tailwindcss-ruby -w /tailwindcss-ruby \
108-
--platform=linux/arm64/v8 ruby:3.2 \
109-
sh -c "
110-
gem install pkg/tailwindcss-ruby-*.gem
111-
tailwindcss --help
112-
"
113-
114-
linux-aarch64-musl-install:
115-
needs: ["package"]
116-
runs-on: ubuntu-latest
64+
install-matrix:
65+
name: "install (${{ matrix.platform }})"
66+
needs: [ "package" ]
67+
strategy:
68+
fail-fast: false
69+
matrix:
70+
ruby: [ "3.4" ]
71+
platform:
72+
- "aarch64-linux-gnu"
73+
- "aarch64-linux-musl"
74+
- "arm64-darwin"
75+
- "x64-mingw-ucrt"
76+
- "x64-mingw32"
77+
- "x86_64-darwin"
78+
- "x86_64-linux-gnu"
79+
- "x86_64-linux-musl"
80+
include:
81+
- { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64/v8" }
82+
- { platform: aarch64-linux-musl, docker_tag: "-alpine", docker_platform: "--platform=linux/arm64/v8" }
83+
- { platform: arm64-darwin, runs_on: macos-14 }
84+
- { platform: x64-mingw-ucrt, runs_on: windows-latest }
85+
- { platform: x64-mingw32, runs_on: windows-latest, ruby: "3.0" }
86+
- { platform: x86_64-darwin, runs_on: macos-13 }
87+
- { platform: x86_64-linux-musl, docker_tag: "-alpine" }
88+
runs-on: ${{ matrix.runs_on || 'ubuntu-latest' }}
11789
steps:
11890
- uses: actions/download-artifact@v4
11991
with:
120-
name: gem-aarch64-linux-musl
92+
name: gem-${{ matrix.platform }}
12193
path: pkg
122-
- run: |
123-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
94+
- if: ${{ matrix.runs_on }}
95+
uses: ruby/setup-ruby@v1
96+
with:
97+
ruby-version: ${{ matrix.ruby }}
98+
- if: ${{ matrix.runs_on }}
99+
run: "gem install pkg/tailwindcss-ruby-*.gem"
100+
- if: ${{ matrix.runs_on }}
101+
run: "tailwindcss --help"
102+
- if: ${{ (! matrix.runs_on) && matrix.docker_platform }}
103+
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
104+
- if: ${{ ! matrix.runs_on }}
105+
run: |
124106
docker run --rm -v $PWD:/tailwindcss-ruby -w /tailwindcss-ruby \
125-
--platform=linux/arm64/v8 ruby:3.2-alpine \
107+
${{ matrix.docker_platform }} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
126108
sh -c "
127-
apk add build-base
128109
gem install pkg/tailwindcss-ruby-*.gem
129110
tailwindcss --help
130111
"
131-
132-
darwin-x86_64-install:
133-
needs: ["package"]
134-
runs-on: macos-13
135-
steps:
136-
- uses: ruby/setup-ruby@v1
137-
with:
138-
ruby-version: "3.2"
139-
- uses: actions/download-artifact@v4
140-
with:
141-
name: gem-x86_64-darwin
142-
path: pkg
143-
- run: "gem install pkg/tailwindcss-ruby-*.gem"
144-
- run: "tailwindcss --help"
145-
146-
darwin-arm64-install:
147-
needs: ["package"]
148-
runs-on: macos-14
149-
steps:
150-
- uses: ruby/setup-ruby@v1
151-
with:
152-
ruby-version: "3.2"
153-
- uses: actions/download-artifact@v4
154-
with:
155-
name: gem-arm64-darwin
156-
path: pkg
157-
- run: "gem install pkg/tailwindcss-ruby-*.gem"
158-
- run: "tailwindcss --help"
159-
160-
windows-install:
161-
needs: ["package"]
162-
runs-on: windows-latest
163-
steps:
164-
- uses: ruby/setup-ruby@v1
165-
with:
166-
ruby-version: "3.0"
167-
- uses: actions/download-artifact@v4
168-
with:
169-
name: gem-x64-mingw32
170-
path: pkg
171-
- run: "gem install pkg/tailwindcss-ruby-*.gem"
172-
- run: "tailwindcss --help"
173-
174-
windows-ucrt-install:
175-
needs: ["package"]
176-
runs-on: windows-2022
177-
steps:
178-
- uses: ruby/setup-ruby@v1
179-
with:
180-
ruby-version: "3.2"
181-
- uses: actions/download-artifact@v4
182-
with:
183-
name: gem-x64-mingw-ucrt
184-
path: pkg
185-
- run: "gem install pkg/tailwindcss-ruby-*.gem"
186-
- run: "tailwindcss --help"

0 commit comments

Comments
 (0)