Skip to content

Commit 322669a

Browse files
committed
Restructure typetests to reduce duplication
- Only run on push on master - Change React matrix to do 18 for edge TS versions, 19 for all - Change portability matrix to do Node for edge TS versions, Bundler for all
1 parent 28bf7f9 commit 322669a

File tree

1 file changed

+115
-34
lines changed

1 file changed

+115
-34
lines changed

.github/workflows/tests.yml

Lines changed: 115 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: CI
2-
on: [push, pull_request]
2+
on:
3+
push:
4+
branches: [master]
5+
pull_request:
36
defaults:
47
run:
58
working-directory: ./packages/toolkit
@@ -70,18 +73,12 @@ jobs:
7073
matrix:
7174
node: ['24.x']
7275
react:
73-
[
74-
{
75-
version: '^18',
76-
types: ^18,
77-
react-dom: { version: '^18', types: '^18' },
78-
},
79-
{
80-
version: '^19',
81-
types: '^19',
82-
react-dom: { version: '^19', types: '^19' },
83-
},
84-
]
76+
- version: '^18'
77+
types: '^18'
78+
react-dom: { version: '^18', types: '^18' }
79+
- version: '^19'
80+
types: '^19'
81+
react-dom: { version: '^19', types: '^19' }
8582

8683
steps:
8784
- name: Checkout repo
@@ -138,20 +135,80 @@ jobs:
138135
fail-fast: false
139136
matrix:
140137
node: ['24.x']
141-
ts: ['5.4', '5.5', '5.6', '5.7', '5.8', '5.9', 'next']
142-
react:
143-
[
144-
{
145-
version: '^18',
146-
types: ^18,
147-
react-dom: { version: '^18', types: '^18' },
148-
},
149-
{
150-
version: '^19',
151-
types: '^19',
152-
react-dom: { version: '^19', types: '^19' },
153-
},
154-
]
138+
# Sparse matrix: All TS versions with React 19, boundary TS versions with React 18
139+
include:
140+
# React 19 × all TS versions
141+
- ts: '5.4'
142+
react:
143+
{
144+
version: '^19',
145+
types: '^19',
146+
react-dom: { version: '^19', types: '^19' },
147+
}
148+
- ts: '5.5'
149+
react:
150+
{
151+
version: '^19',
152+
types: '^19',
153+
react-dom: { version: '^19', types: '^19' },
154+
}
155+
- ts: '5.6'
156+
react:
157+
{
158+
version: '^19',
159+
types: '^19',
160+
react-dom: { version: '^19', types: '^19' },
161+
}
162+
- ts: '5.7'
163+
react:
164+
{
165+
version: '^19',
166+
types: '^19',
167+
react-dom: { version: '^19', types: '^19' },
168+
}
169+
- ts: '5.8'
170+
react:
171+
{
172+
version: '^19',
173+
types: '^19',
174+
react-dom: { version: '^19', types: '^19' },
175+
}
176+
- ts: '5.9'
177+
react:
178+
{
179+
version: '^19',
180+
types: '^19',
181+
react-dom: { version: '^19', types: '^19' },
182+
}
183+
- ts: 'next'
184+
react:
185+
{
186+
version: '^19',
187+
types: '^19',
188+
react-dom: { version: '^19', types: '^19' },
189+
}
190+
# React 18 × boundary TS versions only (5.4, 5.8, next)
191+
- ts: '5.4'
192+
react:
193+
{
194+
version: '^18',
195+
types: '^18',
196+
react-dom: { version: '^18', types: '^18' },
197+
}
198+
- ts: '5.8'
199+
react:
200+
{
201+
version: '^18',
202+
types: '^18',
203+
react-dom: { version: '^18', types: '^18' },
204+
}
205+
- ts: 'next'
206+
react:
207+
{
208+
version: '^18',
209+
types: '^18',
210+
react-dom: { version: '^18', types: '^18' },
211+
}
155212

156213
steps:
157214
- name: Checkout repo
@@ -314,13 +371,37 @@ jobs:
314371
fail-fast: false
315372
matrix:
316373
node: ['24.x']
317-
ts: ['5.4', '5.5', '5.6', '5.7', '5.8', '5.9', 'next']
318-
example:
319-
[
320-
{ name: 'bundler', moduleResolution: 'Bundler' },
321-
{ name: 'nodenext-cjs', moduleResolution: 'NodeNext' },
322-
{ name: 'nodenext-esm', moduleResolution: 'NodeNext' },
323-
]
374+
# Sparse matrix: All TS versions with bundler, boundary TS versions with nodenext
375+
include:
376+
# bundler × all TS versions
377+
- ts: '5.4'
378+
example: { name: 'bundler', moduleResolution: 'Bundler' }
379+
- ts: '5.5'
380+
example: { name: 'bundler', moduleResolution: 'Bundler' }
381+
- ts: '5.6'
382+
example: { name: 'bundler', moduleResolution: 'Bundler' }
383+
- ts: '5.7'
384+
example: { name: 'bundler', moduleResolution: 'Bundler' }
385+
- ts: '5.8'
386+
example: { name: 'bundler', moduleResolution: 'Bundler' }
387+
- ts: '5.9'
388+
example: { name: 'bundler', moduleResolution: 'Bundler' }
389+
- ts: 'next'
390+
example: { name: 'bundler', moduleResolution: 'Bundler' }
391+
# nodenext-cjs × boundary TS versions only (5.4, 5.8, next)
392+
- ts: '5.4'
393+
example: { name: 'nodenext-cjs', moduleResolution: 'NodeNext' }
394+
- ts: '5.8'
395+
example: { name: 'nodenext-cjs', moduleResolution: 'NodeNext' }
396+
- ts: 'next'
397+
example: { name: 'nodenext-cjs', moduleResolution: 'NodeNext' }
398+
# nodenext-esm × boundary TS versions only (5.4, 5.8, next)
399+
- ts: '5.4'
400+
example: { name: 'nodenext-esm', moduleResolution: 'NodeNext' }
401+
- ts: '5.8'
402+
example: { name: 'nodenext-esm', moduleResolution: 'NodeNext' }
403+
- ts: 'next'
404+
example: { name: 'nodenext-esm', moduleResolution: 'NodeNext' }
324405
steps:
325406
- name: Checkout repo
326407
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5

0 commit comments

Comments
 (0)