semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes, and publishing the package.
- Fully automated release
- New features and fixes are immediately available to users
- Notify maintainers and users of new releases
- Use formalized commit message convention to document changes in the codebase
- Avoid potential errors associated with manual releases
semantic-release uses the commit messages to determine the consumer impact of changes in the codebase. Following formalized conventions for commit messages, semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release.
The table below shows which commit message gets you which release type when
semantic-releaseruns (using the default configuration):
semantic-release is meant to be executed on the CI environment after every successful build on the release branch. This way no human is directly involved in the release process and the releases are guaranteed to be unromantic and unsentimental.
For each new commit added to one of the release branches (for example:
git pushor by merging a pull request or merging from another branch, a CI build is triggered and runs the
semantic-releasecommand to make a release if there are codebase changes since the last release that affect the package functionalities.
semantic-release offers various ways to control the timing, the content and the audience of published releases. See example workflows in the following recipes:
After running the tests, the command
semantic-releasewill execute the following steps:
In order to use semantic-release you need:
Kill all humans