The shared semantic release config and plugins for my projects.
Install the package:
# install the package and run semantic-release with built-in config
pnpm dlx @jcwillox/semantic-release-configExtra args are passed straight to
semantic-releaseso you can use--dry-runor--no-cifor 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). |
[] |