semantic-release icon indicating copy to clipboard operation
semantic-release copied to clipboard

--plugins CLI flag does not honor plugin configurations

Open mkunkel opened this issue 9 months ago • 0 comments

Current behavior

We are trying to use semantic-release to automatically create releases exclusively through Github Actions. We are trying to do this across multiple projects with a standard configuration.

We currently have this command in place npx semantic-release --dry-run --debug --branches main --plugins "@semantic-release/commit-analyzer, [@semantic-release/github, {'successComment': false, 'failComment': false, 'failTitle': false}], @semantic-release/release-notes-generator"

The plugins listed in the output are as follows:

  semantic-release:config   plugins: [
  semantic-release:config     '@semantic-release/commit-analyzer',
  semantic-release:config     '[@semantic-release/github',
  semantic-release:config     "{'successComment': false",
  semantic-release:config     "'failComment': false",
  semantic-release:config     "'failTitle': false}]",
  semantic-release:config     '@semantic-release/release-notes-generator'
  semantic-release:config   ],

This results in an error when attempting to load '[@semantic-release/github' The documentation describes this syntax, but when used via CLI, it results in a list of strings.

Expected behavior

I would expect that output to show something like the following:

  semantic-release:config   plugins: [
  semantic-release:config     '@semantic-release/commit-analyzer',
  semantic-release:config     [
  semantic-release:config       '@semantic-release/github',
  semantic-release:config       {
  semantic-release:config         'successComment': false,
  semantic-release:config         'failComment': false,
  semantic-release:config         'failTitle': false
  semantic-release:config       }
  semantic-release:config     ],
  semantic-release:config     '@semantic-release/release-notes-generator'
  semantic-release:config   ],

semantic-release version

23.0.8, but it is currently installed directly with no version lock

CI environment

N/A

Plugins used

@semantic-release/commit-analyzer @semantic-release/github @semantic-release/release-notes-generator

semantic-release configuration

npx semantic-release --dry-run --debug --branches main --plugins "@semantic-release/commit-analyzer, [@semantic-release/github, {'successComment': false, 'failComment': false, 'failTitle': false}], @semantic-release/release-notes-generator"

CI logs

[3:30:58 PM] [semantic-release] › ℹ  Running semantic-release version 23.0.8
  semantic-release:config load config from: undefined +0ms
  semantic-release:config options values: {
  semantic-release:config   branches: [ 'conventional-commit' ],
  semantic-release:config   repositoryUrl: '[email protected]:RedVentures/travel-actions-release.git',
  semantic-release:config   tagFormat: 'v${version}',
  semantic-release:config   plugins: [
  semantic-release:config     '@semantic-release/commit-analyzer',
  semantic-release:config     '[@semantic-release/github',
  semantic-release:config     "{'successComment': false",
  semantic-release:config     "'failComment': false",
  semantic-release:config     "'failTitle': false}]",
  semantic-release:config     '@semantic-release/release-notes-generator'
  semantic-release:config   ],
  semantic-release:config   _: [],
  semantic-release:config   'dry-run': true,
  semantic-release:config   d: true,
  semantic-release:config   dryRun: true,
  semantic-release:config   debug: true,
  semantic-release:config   b: [ 'conventional-commit' ],
  semantic-release:config   p: [
  semantic-release:config     '@semantic-release/commit-analyzer',
  semantic-release:config     '[@semantic-release/github',
  semantic-release:config     "{'successComment': false",
  semantic-release:config     "'failComment': false",
  semantic-release:config     "'failTitle': false}]",
  semantic-release:config     '@semantic-release/release-notes-generator'
  semantic-release:config   ],
  semantic-release:config   '$0': '../../.asdf/installs/nodejs/20.8.1/bin/semantic-release'
  semantic-release:config } +5ms
[3:30:58 PM] [semantic-release] › ✘  An error occurred while running semantic-release: Error: Cannot find module '[@semantic-release/github'
Require stack:
- /home/mikek/lp/travel-actions-release/noop.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
    at resolveFileName (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:29:39)
    at resolveFrom (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:43:9)
    at module.exports (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:46:47)
    at loadPlugin (file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/utils.js:59:54)
    at file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:18:43
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/mikek/lp/travel-actions-release/noop.js' ]
}
Error: Cannot find module '[@semantic-release/github'
Require stack:
- /home/mikek/lp/travel-actions-release/noop.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
    at resolveFileName (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:29:39)
    at resolveFrom (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:43:9)
    at module.exports (/home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/node_modules/resolve-from/index.js:46:47)
    at loadPlugin (file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/utils.js:59:54)
    at file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:18:43
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29
    at async file:///home/mikek/.asdf/installs/nodejs/20.8.1/lib/node_modules/semantic-release/lib/plugins/index.js:15:29 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/mikek/lp/travel-actions-release/noop.js' ]

mkunkel avatar Apr 30 '24 20:04 mkunkel