fix: normalize ci: false into noCi: true after configs get merged (#1732) thanks @dominykas
This makes sure that options.ci is respected even when set inside a shareable config
This commit is contained in:
parent
da75a9c60a
commit
21c151f167
@ -27,9 +27,6 @@ module.exports = async (context, cliOptions) => {
|
|||||||
|
|
||||||
// Merge config file options and CLI/API options
|
// Merge config file options and CLI/API options
|
||||||
let options = {...config, ...cliOptions};
|
let options = {...config, ...cliOptions};
|
||||||
if (options.ci === false) {
|
|
||||||
options.noCi = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const pluginsPath = {};
|
const pluginsPath = {};
|
||||||
let extendPaths;
|
let extendPaths;
|
||||||
@ -87,6 +84,10 @@ module.exports = async (context, cliOptions) => {
|
|||||||
...(options.branches ? {branches: castArray(options.branches)} : {}),
|
...(options.branches ? {branches: castArray(options.branches)} : {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (options.ci === false) {
|
||||||
|
options.noCi = true;
|
||||||
|
}
|
||||||
|
|
||||||
debug('options values: %O', options);
|
debug('options values: %O', options);
|
||||||
|
|
||||||
return {options, plugins: await plugins({...context, options}, pluginsPath)};
|
return {options, plugins: await plugins({...context, options}, pluginsPath)};
|
||||||
|
@ -505,10 +505,10 @@ test('Allow to unset properties defined in shareable config with "undefined"', a
|
|||||||
test('Throw an Error if one of the shareable config cannot be found', async (t) => {
|
test('Throw an Error if one of the shareable config cannot be found', async (t) => {
|
||||||
// Create a git repository, set the current working directory at the root of the repo
|
// Create a git repository, set the current working directory at the root of the repo
|
||||||
const {cwd} = await gitRepo();
|
const {cwd} = await gitRepo();
|
||||||
const pkhOptions = {extends: ['./shareable1.json', 'non-existing-path']};
|
const pkgOptions = {extends: ['./shareable1.json', 'non-existing-path']};
|
||||||
const options1 = {analyzeCommits: 'analyzeCommits'};
|
const options1 = {analyzeCommits: 'analyzeCommits'};
|
||||||
// Create package.json and shareable.json in repository root
|
// Create package.json and shareable.json in repository root
|
||||||
await outputJson(path.resolve(cwd, 'package.json'), {release: pkhOptions});
|
await outputJson(path.resolve(cwd, 'package.json'), {release: pkgOptions});
|
||||||
await outputJson(path.resolve(cwd, 'shareable1.json'), options1);
|
await outputJson(path.resolve(cwd, 'shareable1.json'), options1);
|
||||||
|
|
||||||
await t.throwsAsync(t.context.getConfig({cwd}), {
|
await t.throwsAsync(t.context.getConfig({cwd}), {
|
||||||
@ -516,3 +516,20 @@ test('Throw an Error if one of the shareable config cannot be found', async (t)
|
|||||||
code: 'MODULE_NOT_FOUND',
|
code: 'MODULE_NOT_FOUND',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Convert "ci" option to "noCi" when set from extended config', async (t) => {
|
||||||
|
// Create a git repository, set the current working directory at the root of the repo
|
||||||
|
const {cwd} = await gitRepo();
|
||||||
|
const pkgOptions = {extends: './no-ci.json'};
|
||||||
|
const options = {
|
||||||
|
ci: false,
|
||||||
|
};
|
||||||
|
// Create package.json and shareable.json in repository root
|
||||||
|
await outputJson(path.resolve(cwd, 'package.json'), {release: pkgOptions});
|
||||||
|
await outputJson(path.resolve(cwd, 'no-ci.json'), options);
|
||||||
|
|
||||||
|
const {options: result} = await t.context.getConfig({cwd});
|
||||||
|
|
||||||
|
t.is(result.ci, false);
|
||||||
|
t.is(result.noCi, true);
|
||||||
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user