Skip to content

Commit 4d67453

Browse files
committed
feat: allow adding latest to other ci versions
1 parent b7db8af commit 4d67453

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

lib/config.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,11 @@ const getFullConfig = async ({
228228

229229
if (pkgConfig.ciVersions) {
230230
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.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)
234236
}
235237

236238
const { targets, engines } = parseCIVersions(versions)

test/apply/engines.js

+20
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,26 @@ t.test('can set engines and ci separately', async (t) => {
2020
t.notOk(ci.includes('- 12'))
2121
})
2222

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+
2343
t.test('latest ci versions', async (t) => {
2444
const s = await setup(t, {
2545
package: {

0 commit comments

Comments
 (0)