A semantic-release config with improved defaults and configurable through environment variables
npm install @jcwillox/semantic-release-config



The shared semantic release config and plugins for my projects.
Install the package:
``bash`install the package and run semantic-release with built-in config
pnpm dlx @jcwillox/semantic-release-config
> Extra args are passed straight to semantic-release so you can use --dry-run or --no-ci for example.
The config is designed to be controlled through environment variables, all envs must be prefixed with SEMANTIC_RELEASE_.
| Option | Description | Default |
|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|
| NPM_ENABLE | Enable/disable the npm plugin | true when package.json exists and private is not set to true |NPM_PKG_ROOT
| | Directory path to publish | . |GITHUB_ASSETS
| | | |
| | Assets glob to upload to the GitHub release | |GITHUB_DRAFT
| | Create a draft release on GitHub | false |GITHUB_DISCUSSION
| | Category name in which to create a discussion for the release, if value is set to true category will be General | false |FORCE_RELEASE
| | | |
| | Forces the specified release type to be made, one of major, minor, patch, auto | auto |CMD_VERIFY
| | | |
| | Run a command, supports templating same as @semantic-release/exec | |CMD_ANALYZE_COMMITS
| | Run a command, supports templating same as @semantic-release/exec | |CMD_VERIFY_RELEASE
| | Run a command, supports templating same as @semantic-release/exec | |CMD_GENERATE_NOTES
| | Run a command, supports templating same as @semantic-release/exec | |CMD_PREPARE
| | Run a command, supports templating same as @semantic-release/exec | |CMD_PRE_PUBLISH
| | Run a command, supports templating same as @semantic-release/exec, runs earlier than other publish steps. | |CMD_PUBLISH
| | Run a command, supports templating same as @semantic-release/exec | |CMD_CHANNEL
| | Run a command, supports templating same as @semantic-release/exec | |CMD_SUCCESS
| | Run a command, supports templating same as @semantic-release/exec | |CHANGELOG
| | | |
| | Enable the changelog writer plugin | true when file or title is defined |CHANGELOG_TITLE
| | Title to prepend the changelog file with (templatable) | # Changelog |CHANGELOG_FILE
| | The file to write the changelog to (templatable) | CHANGELOG.md |CHANGELOG_PREFIX
| | Prefix to append before the release notes (templatable) | ## ${nextRelease.version} |GIT_COMMIT
| | | |
| | Enable the @semantic-release/git plugin | true when changelog enabled, or message or assets is defined |GIT_MESSAGE
| | Override default commit message | release: ${nextRelease.version} [skip ci]\n\n${nextRelease.notes} |GIT_ASSETS
| | Specify which assets to include in the commit | automatically uses changelog file if present and not overriden |COMMIT_MINOR_TYPES
| | | |
| | Additional commit type's that should trigger a minor release (JSON array or single string). | [] |COMMIT_PATCH_TYPES
| | Additional commit type's that should trigger a patch release (JSON array or single string). | []` |