From 2faff2637f49e3caf6e08c5b0de5e53f99e29ac7 Mon Sep 17 00:00:00 2001 From: Pierre Vanduynslager Date: Tue, 11 Dec 2018 13:25:12 -0500 Subject: [PATCH] fix: allow to set `ci` option via API and config file --- cli.js | 5 ----- lib/get-config.js | 3 +++ test/cli.test.js | 12 ------------ test/get-config.test.js | 12 ++++++++++++ 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/cli.js b/cli.js index 2767c49e19..39549a2808 100755 --- a/cli.js +++ b/cli.js @@ -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:*'); diff --git a/lib/get-config.js b/lib/get-config.js index 1ee2abb688..3b1864b630 100644 --- a/lib/get-config.js +++ b/lib/get-config.js @@ -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); diff --git a/test/cli.test.js b/test/cli.test.js index aca4d03ffb..7d7961c4fb 100644 --- a/test/cli.test.js +++ b/test/cli.test.js @@ -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']; diff --git a/test/get-config.test.js b/test/get-config.test.js index 6978723598..1df49e602f 100644 --- a/test/get-config.test.js +++ b/test/get-config.test.js @@ -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();