In order to customize semantic-release’s behavior, options and plugins can be set via:
- A
.releaserc
file, written in YAML or JSON, with optional extensions: .yaml
/.yml
/.json
/.js
- A
release.config.js
file that exports an object - A
release
key in the project'spackage.json
file - CLI arguments
The following two examples are the same.
Via CLI argument:
$ semantic-release --branch next
Via release
key in the project's package.json
file:
"release": {
"branch": "next"
}
$ semantic-release
Note: CLI arguments take precedence over options configured in the configuration file.
Note: Plugins options cannot be defined via CLI arguments and must be defined in the configuration file.
Type: Array
, String
CLI arguments: -e
, --extends
List of modules or file paths containing a shareable configuration. If multiple shareable configuration are set, they will be imported in the order defined with each configuration option taking precedence over the options defined in a previous shareable configuration.
Note: Options defined via CLI arguments or in the configuration file will take precedence over the ones defined in any shareable configuration.
Type: String
Default: master
CLI arguments: -b
, --branch
The branch on which releases should happen.
Type: String
Default: repository
property in package.json
or git origin url
CLI arguments: -r
, --repository-url
The git repository URL.
Any valid git url format is supported (See Git protocols).
Note: If the Github plugin is used the URL must be a valid Github URL that include the owner
, the repository
name and the host
. The Github shorthand URL is not supported.
Type: String
Default: v${version}
CLI arguments: -t
, --tag-format
The Git tag format used by semantic-release to identify releases. The tag name is generated with Lodash template and will be compiled with the version
variable.
Note: The tagFormat
must contain the version
variable exactly once and compile to a valid Git reference.
Type: Boolean
Default: false
if running in a CI environment, false
otherwise
CLI arguments: -d
, --dry-run
Dry-run mode, skip publishing, print next version and release notes.
Type: Boolean
Default: false
CLI arguments: --no-ci
Skip Continuous Integration environment verifications, allowing to make releases from a local machine.
Type: Boolean
Default: false
CLI argument: --debug
Output debugging information. It can also be enabled by set the DEBUG
environment variable to semantic-release
.
Type: Array
, String
, Object
Default: ['@semantic-release/npm', '@semantic-release/github']
CLI argument: --verify-conditions
Define the list of verify conditions plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.
Type: String
, Object
Default: ['@semantic-release/commit-analyzer']
CLI argument: --analyze-commits
Define the analyze commits plugin.
See Plugins configuration for more details.
Type: Array
, String
, Object
Default: []
CLI argument: --verify-release
Define the list of verify release plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.
Type: String
, Object
Default: ['@semantic-release/release-notes-generator']
CLI argument: --generate-notes
Define the generate notes plugin.
See Plugins configuration for more details.
Type: Array
, String
, Object
Default: ['@semantic-release/npm']
CLI argument: --prepare
Define the list of prepare plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.
Type: Array
, String
, Object
Default: ['@semantic-release/npm', '@semantic-release/github']
CLI argument: --publish
Define the list of publish plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.
Type: Array
, String
, Object
Default: ['@semantic-release/github']
CLI argument: --success
Define the list of success plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.
Type: Array
, String
, Object
Default: ['@semantic-release/github']
CLI argument: --fail
Define the list of fail plugins. Plugins will run in series, in the order defined in the Array
.
See Plugins configuration for more details.