File tree 2 files changed +25
-3
lines changed
2 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -228,9 +228,11 @@ const getFullConfig = async ({
228
228
229
229
if ( pkgConfig . ciVersions ) {
230
230
let versions = pkgConfig . ciVersions
231
- if ( versions === 'latest' ) {
232
- const defaultVersions = [ rootPkgConfig , defaultConfig ] . find ( c => Array . isArray ( c . ciVersions ) )
233
- versions = defaultVersions . ciVersions . slice ( - 1 )
231
+ if ( versions === 'latest' || ( Array . isArray ( versions ) && versions . includes ( 'latest' ) ) ) {
232
+ const { ciVersions } = [ isWorkspace ? rootPkgConfig : { } , defaultConfig ]
233
+ . find ( c => Array . isArray ( c . ciVersions ) )
234
+ const defaultLatest = ciVersions [ ciVersions . length - 1 ]
235
+ versions = [ ] . concat ( versions ) . map ( v => v === 'latest' ? defaultLatest : v )
234
236
}
235
237
236
238
const { targets, engines } = parseCIVersions ( versions )
Original file line number Diff line number Diff line change @@ -20,6 +20,26 @@ t.test('can set engines and ci separately', async (t) => {
20
20
t . notOk ( ci . includes ( '- 12' ) )
21
21
} )
22
22
23
+ t . test ( 'can set ci to latest plus other versions' , async ( t ) => {
24
+ const s = await setup ( t , {
25
+ package : {
26
+ templateOSS : {
27
+ ciVersions : [ '6' , '8' , 'latest' ] ,
28
+ engines : '*' ,
29
+ } ,
30
+ } ,
31
+ } )
32
+ await s . apply ( )
33
+
34
+ const pkg = await s . readJson ( 'package.json' )
35
+ const ci = await s . readFile ( join ( '.github' , 'workflows' , 'ci.yml' ) )
36
+
37
+ t . equal ( pkg . engines . node , '*' )
38
+ t . ok ( ci . includes ( '- 6' ) )
39
+ t . ok ( ci . includes ( '- 8' ) )
40
+ t . ok ( ci . includes ( '- 18.x' ) )
41
+ } )
42
+
23
43
t . test ( 'latest ci versions' , async ( t ) => {
24
44
const s = await setup ( t , {
25
45
package : {
You can’t perform that action at this time.
0 commit comments