Skip to content

Commit e0c8ba8

Browse files
committed
Use matrix to reduce duplication in CI workflow
1 parent a6b31de commit e0c8ba8

File tree

1 file changed

+35
-165
lines changed

1 file changed

+35
-165
lines changed

.github/workflows/ci.yml

Lines changed: 35 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -22,182 +22,52 @@ jobs:
2222
bundler-cache: true
2323
- name: Run rubocop
2424
run: bundle exec rubocop --parallel --format progress
25-
26-
grape-17:
27-
runs-on: ubuntu-latest
28-
needs: ['rubocop']
29-
env:
30-
GRAPE_VERSION: '1.7.1'
25+
test:
3126
strategy:
3227
matrix:
33-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
34-
steps:
35-
- name: Check out branch
36-
uses: actions/checkout@v4
37-
- name: Set up Ruby
38-
uses: ruby/setup-ruby@v1
39-
with:
40-
ruby-version: ${{ matrix.ruby-version }}
41-
- name: Run rspec wo model parser
42-
run: |
43-
bundle update
44-
bundle exec rspec
45-
- name: Run rspec w entity parser
46-
env:
47-
MODEL_PARSER: grape-swagger-entity
48-
run: |
49-
bundle update
50-
bundle exec rspec
51-
- name: Run rspec w representable parser
52-
env:
53-
MODEL_PARSER: grape-swagger-representable
54-
run: |
55-
bundle update
56-
bundle exec rspec
57-
58-
grape-18:
28+
entry:
29+
- { ruby: '3.0', grape: '1.7.1' }
30+
- { ruby: '3.1', grape: '1.7.1' }
31+
- { ruby: '3.2', grape: '1.7.1' }
32+
- { ruby: '3.3', grape: '1.7.1' }
33+
- { ruby: 'head', grape: '1.7.1' }
34+
- { ruby: '3.0', grape: '1.8.0' }
35+
- { ruby: '3.1', grape: '1.8.0' }
36+
- { ruby: '3.2', grape: '1.8.0' }
37+
- { ruby: '3.3', grape: '1.8.0' }
38+
- { ruby: 'head', grape: '1.8.0' }
39+
- { ruby: '3.0', grape: '2.0.0' }
40+
- { ruby: '3.1', grape: '2.0.0' }
41+
- { ruby: '3.2', grape: '2.0.0' }
42+
- { ruby: '3.3', grape: '2.0.0' }
43+
- { ruby: 'head', grape: '2.0.0' }
44+
- { ruby: '3.0', grape: '2.1.3' }
45+
- { ruby: '3.1', grape: '2.1.3' }
46+
- { ruby: '3.2', grape: '2.1.3' }
47+
- { ruby: '3.3', grape: '2.1.3' }
48+
- { ruby: 'head', grape: '2.1.3' }
49+
- { ruby: '3.0', grape: '2.2.0' }
50+
- { ruby: '3.1', grape: '2.2.0' }
51+
- { ruby: '3.2', grape: '2.2.0' }
52+
- { ruby: '3.3', grape: '2.2.0' }
53+
- { ruby: 'head', grape: '2.2.0' }
54+
- { ruby: '3.0', grape: 'HEAD' }
55+
- { ruby: '3.1', grape: 'HEAD' }
56+
- { ruby: '3.2', grape: 'HEAD' }
57+
- { ruby: '3.3', grape: 'HEAD' }
58+
- { ruby: 'head', grape: 'HEAD' }
59+
name: test (ruby=${{ matrix.entry.ruby }}, grape=${{ matrix.entry.grape }})
5960
runs-on: ubuntu-latest
6061
needs: ['rubocop']
6162
env:
62-
GRAPE_VERSION: '1.8.0'
63-
strategy:
64-
matrix:
65-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
66-
steps:
67-
- name: Check out branch
68-
uses: actions/checkout@v4
69-
- name: Set up Ruby
70-
uses: ruby/setup-ruby@v1
71-
with:
72-
ruby-version: ${{ matrix.ruby-version }}
73-
- name: Run rspec wo model parser
74-
run: |
75-
bundle update
76-
bundle exec rspec
77-
- name: Run rspec w entity parser
78-
env:
79-
MODEL_PARSER: grape-swagger-entity
80-
run: |
81-
bundle update
82-
bundle exec rspec
83-
- name: Run rspec w representable parser
84-
env:
85-
MODEL_PARSER: grape-swagger-representable
86-
run: |
87-
bundle update
88-
bundle exec rspec
89-
90-
grape-20:
91-
runs-on: ubuntu-latest
92-
needs: ['rubocop']
93-
env:
94-
GRAPE_VERSION: '2.0.0'
95-
strategy:
96-
matrix:
97-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
98-
steps:
99-
- name: Check out branch
100-
uses: actions/checkout@v4
101-
- name: Set up Ruby
102-
uses: ruby/setup-ruby@v1
103-
with:
104-
ruby-version: ${{ matrix.ruby-version }}
105-
- name: Run rspec wo model parser
106-
run: |
107-
bundle update
108-
bundle exec rspec
109-
- name: Run rspec w entity parser
110-
env:
111-
MODEL_PARSER: grape-swagger-entity
112-
run: |
113-
bundle update
114-
bundle exec rspec
115-
- name: Run rspec w representable parser
116-
env:
117-
MODEL_PARSER: grape-swagger-representable
118-
run: |
119-
bundle update
120-
bundle exec rspec
121-
122-
grape-21:
123-
runs-on: ubuntu-latest
124-
needs: ['rubocop']
125-
env:
126-
GRAPE_VERSION: '2.1.3'
127-
strategy:
128-
matrix:
129-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
130-
steps:
131-
- name: Check out branch
132-
uses: actions/checkout@v4
133-
- name: Set up Ruby
134-
uses: ruby/setup-ruby@v1
135-
with:
136-
ruby-version: ${{ matrix.ruby-version }}
137-
- name: Run rspec wo model parser
138-
run: |
139-
bundle update
140-
bundle exec rspec
141-
- name: Run rspec w entity parser
142-
env:
143-
MODEL_PARSER: grape-swagger-entity
144-
run: |
145-
bundle update
146-
bundle exec rspec
147-
- name: Run rspec w representable parser
148-
env:
149-
MODEL_PARSER: grape-swagger-representable
150-
run: |
151-
bundle update
152-
bundle exec rspec
153-
154-
grape-22:
155-
runs-on: ubuntu-latest
156-
needs: ['rubocop']
157-
env:
158-
GRAPE_VERSION: '2.2.0'
159-
strategy:
160-
matrix:
161-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
162-
steps:
163-
- name: Check out branch
164-
uses: actions/checkout@v4
165-
- name: Set up Ruby
166-
uses: ruby/setup-ruby@v1
167-
with:
168-
ruby-version: ${{ matrix.ruby-version }}
169-
- name: Run rspec wo model parser
170-
run: |
171-
bundle update
172-
bundle exec rspec
173-
- name: Run rspec w entity parser
174-
env:
175-
MODEL_PARSER: grape-swagger-entity
176-
run: |
177-
bundle update
178-
bundle exec rspec
179-
- name: Run rspec w representable parser
180-
env:
181-
MODEL_PARSER: grape-swagger-representable
182-
run: |
183-
bundle update
184-
bundle exec rspec
185-
186-
grape-HEAD:
187-
runs-on: ubuntu-latest
188-
needs: ['rubocop']
189-
env:
190-
GRAPE_VERSION: 'HEAD'
191-
strategy:
192-
matrix:
193-
ruby-version: ['3.0', '3.1', '3.2', '3.3', 'head']
63+
GRAPE_VERSION: ${{ matrix.entry.grape }}
19464
steps:
19565
- name: Check out branch
19666
uses: actions/checkout@v4
19767
- name: Set up Ruby
19868
uses: ruby/setup-ruby@v1
19969
with:
200-
ruby-version: ${{ matrix.ruby-version }}
70+
ruby-version: ${{ matrix.entry.ruby }}
20171
- name: Run rspec wo model parser
20272
run: |
20373
bundle update

0 commit comments

Comments
 (0)