fix: allow to set ci option via API and config file

This commit is contained in:
Pierre Vanduynslager 2018-12-11 13:25:12 -05:00
parent 6b110b6e9e
commit 862ec4c087
4 changed files with 15 additions and 17 deletions

5
cli.js
View File

@ -47,11 +47,6 @@ Usage:
return 0; return 0;
} }
// Set the `noCi` options as yargs sets the `ci` options instead (because arg starts with `--no`)
if (opts.ci === false) {
opts.noCi = true;
}
if (opts.debug) { if (opts.debug) {
// Debug must be enabled before other requires in order to work // Debug must be enabled before other requires in order to work
require('debug').enable('semantic-release:*'); require('debug').enable('semantic-release:*');

View File

@ -27,6 +27,9 @@ module.exports = async (context, opts) => {
// Merge config file options and CLI/API options // Merge config file options and CLI/API options
let options = {...config, ...opts}; let options = {...config, ...opts};
if (options.ci === false) {
options.noCi = true;
}
const pluginsPath = {}; const pluginsPath = {};
let extendPaths; let extendPaths;
({extends: extendPaths, ...options} = options); ({extends: extendPaths, ...options} = options);

View File

@ -163,18 +163,6 @@ test.serial('Do not set properties in option for which arg is not in command lin
t.false('e' in run.args[0][0]); t.false('e' in run.args[0][0]);
}); });
test.serial('Set "noCi" options to "true" with "--no-ci"', async t => {
const run = stub().resolves(true);
const argv = ['', '', '--no-ci'];
const cli = requireNoCache('../cli', {'.': run, process: {...process, argv}});
const exitCode = await cli();
t.is(run.args[0][0].noCi, true);
t.is(exitCode, 0);
});
test.serial('Display help', async t => { test.serial('Display help', async t => {
const run = stub().resolves(true); const run = stub().resolves(true);
const argv = ['', '', '--help']; const argv = ['', '', '--help'];

View File

@ -67,6 +67,18 @@ test('Default values, reading repositoryUrl (http url) from package.json if not
t.is(result.tagFormat, `v\${version}`); t.is(result.tagFormat, `v\${version}`);
}); });
test('Convert "ci" option to "noCi"', async t => {
const pkg = {repository: 'https://host.null/owner/module.git', release: {ci: false}};
// Create a git repository, set the current working directory at the root of the repo
const {cwd} = await gitRepo();
// Create package.json in repository root
await outputJson(path.resolve(cwd, 'package.json'), pkg);
const {options: result} = await t.context.getConfig({cwd});
t.is(result.noCi, true);
});
test('Read options from package.json', async t => { test('Read options from package.json', 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();