Skip to content

Commit

Permalink
fix: allow to set ci option via API and config file
Browse files Browse the repository at this point in the history
  • Loading branch information
pvdlg committed Dec 12, 2018
1 parent 635406c commit 2faff26
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 17 deletions.
5 changes: 0 additions & 5 deletions cli.js
Expand Up @@ -47,11 +47,6 @@ Usage:
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) {
// Debug must be enabled before other requires in order to work
require('debug').enable('semantic-release:*');
Expand Down
3 changes: 3 additions & 0 deletions lib/get-config.js
Expand Up @@ -27,6 +27,9 @@ module.exports = async (context, opts) => {

// Merge config file options and CLI/API options
let options = {...config, ...opts};
if (options.ci === false) {
options.noCi = true;
}
const pluginsPath = {};
let extendPaths;
({extends: extendPaths, ...options} = options);
Expand Down
12 changes: 0 additions & 12 deletions test/cli.test.js
Expand Up @@ -164,18 +164,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]);
});

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 => {
const run = stub().resolves(true);
const argv = ['', '', '--help'];
Expand Down
12 changes: 12 additions & 0 deletions test/get-config.test.js
Expand Up @@ -90,6 +90,18 @@ test('Default values, reading repositoryUrl (http url) from package.json if not
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 => {
// Create a git repository, set the current working directory at the root of the repo
const {cwd} = await gitRepo();
Expand Down

0 comments on commit 2faff26

Please sign in to comment.