Skip to content

Commit 5fededb

Browse files
committed
fix: workspace can use only latest ci version of root
1 parent 4bbb731 commit 5fededb

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

lib/config.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,13 @@ const getFullConfig = async ({
216216
}
217217

218218
if (pkgConfig.ciVersions) {
219-
const versions = pkgConfig.ciVersions
220-
const defaultVersions = defaultConfig.ciVersions
221-
const parsed = parseCIVersions(versions === 'latest' ? defaultVersions.slice(-1) : versions)
219+
let versions = pkgConfig.ciVersions
220+
if (versions === 'latest') {
221+
const defaultVersions = [rootPkgConfig, defaultConfig].find(c => Array.isArray(c.ciVersions))
222+
versions = defaultVersions.ciVersions.slice(-1)
223+
}
224+
225+
const parsed = parseCIVersions(versions)
222226
derived.ciVersions = parsed.targets
223227
derived.engines = pkgConfig.engines || parsed.engines
224228
}

test/apply/engines.js

+34
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,37 @@ t.test('latest ci versions', async (t) => {
3333
const pkg = await s.readJson('package.json')
3434
t.equal(pkg.engines.node, '>=18.0.0')
3535
})
36+
37+
t.test('latest ci versions in workspace', async (t) => {
38+
const s = await setup(t, {
39+
package: {
40+
templateOSS: {
41+
content: 'content',
42+
ciVersions: ['12.x', '14.x', '16.x'],
43+
},
44+
},
45+
workspaces: {
46+
a: {
47+
templateOSS: {
48+
ciVersions: 'latest',
49+
},
50+
},
51+
},
52+
testdir: {
53+
content: {
54+
'source.json': '{ "node": {{{ json engines }}} }',
55+
'index.js': `module.exports={
56+
rootRepo:{add:{'target.json':'source.json'}},
57+
workspaceRepo:{add:{'target-{{ pkgNameFs }}.json':'source.json'}}
58+
}`,
59+
},
60+
},
61+
})
62+
await s.apply()
63+
64+
const root = await s.readJson('target.json')
65+
const workspace = await s.readJson('target-a.json')
66+
67+
t.equal(root.node, '^12.0.0 || ^14.0.0 || >=16.0.0')
68+
t.equal(workspace.node, '>=16.0.0')
69+
})

0 commit comments

Comments
 (0)