semantic-release commits do not match the commit convention in CI
The @semantic-release/commit-analyzer maps commit messages to release levels using a convention (Angular / Conventional Commits by default). Free-form messages with no recognized type produce no release, even when the code changed meaningfully.
What this error means
semantic-release reports "no release" for commits like "update code" or "wip", while a "feat:" or "fix:" commit would have triggered one.
[semantic-release] Analyzing commit: update login page
[semantic-release] The commit should not trigger a release
[semantic-release] Analysis of 5 commits complete: no releaseCommon causes
Messages lack a conventional type prefix
Without feat:, fix:, or a BREAKING CHANGE: footer, the analyzer has nothing to map to a release level.
A different preset than the team writes for
The config uses the Angular preset but authors write for a different convention, so types are unrecognized.
How to fix it
Write conventional commit messages
- Prefix commits with a recognized type: feat, fix, perf, etc.
- Put breaking changes in a
BREAKING CHANGE:footer for a major. - Enforce the format with commitlint on pull requests.
feat(auth): support SSO login
fix(api): return 404 for missing userMatch the preset to your convention
Set the preset the analyzer uses so your team-authored types are recognized.
["@semantic-release/commit-analyzer", { "preset": "conventionalcommits" }]How to prevent it
- Adopt Conventional Commits and enforce with commitlint.
- Align the analyzer preset with the convention you write for.
- Keep squash titles conventional so merges still trigger releases.