Release Steps
This page explains the release lifecycle that runs when semantic-release is executed. If you are new to the overall model, read How it Works first.
Lifecycle overview
Section titled “Lifecycle overview”After tests pass and semantic-release starts, it evaluates the repository state and executes release steps in a fixed order.
| Step | Purpose |
|---|---|
| Verify Conditions | Confirm required configuration and credentials are available. |
| Get Last Release | Find the most recent release by reading Git tags/history. |
| Analyze Commits | Determine whether to release and which version type to produce. |
| Verify Release | Validate the computed release metadata before publishing. |
| Generate Notes | Build release notes for the commits included in this release. |
| Create Git Tag | Tag the release version in Git. |
| Prepare | Perform pre-publish updates such as assets or files. |
| Publish | Publish artifacts to configured destinations and channels. |
| Notify | Report success or failure through provider integrations. |
The order is important. A failure in an early step prevents later steps from running.
How steps are implemented
Section titled “How steps are implemented”Each lifecycle step is implemented by plugins. Some steps are optional, some are required for a valid release pipeline.
analyzeCommitsis required to decide version impact- Most other steps depend on which plugins you configure
- If multiple plugins implement the same step, they execute in plugin order
For plugin responsibilities and execution details, see Plugins.
Release decision logic
Section titled “Release decision logic”The analyzeCommits step is the decision point for whether a release is created.
- No relevant commits since the last release means no new release
fixcommits typically result in a patch releasefeatcommits typically result in a minor releaseBREAKING CHANGEresults in a major release
Commit parsing depends on your configured commit analyzer and presets. See How it Works for the conceptual model and Configuration for setup details.
Branch and channel impact
Section titled “Branch and channel impact”The same steps run regardless of branch type, but release outcomes vary with branch strategy and channel configuration.
- Release branches publish regular versions
- Maintenance branches publish within defined ranges
- Pre-release branches publish pre-release identifiers
See Supported Branching Models and Release Workflow Configuration for branch behavior and constraints.
Operational expectations
Section titled “Operational expectations”To keep releases deterministic, run semantic-release only in CI and only after all required checks pass.
For implementation guidance, see: