- Branch from
main. - Edit action code.
- Commit using Conventional Commits.
- Open PR → merge to
main. - Release workflow auto-tags + publishes.
<type>: <description>
| Type | Bump | Use for |
|---|---|---|
fix: |
patch (v1.0.0 → v1.0.1) | bug fixes |
feat: |
minor (v1.0.0 → v1.1.0) | new inputs, new features |
feat!: or BREAKING CHANGE: in body |
major (v1.0.0 → v2.0.0) | removed inputs, changed defaults |
docs:, chore:, refactor:, ci:, test: |
patch | non-functional changes |
Examples:
fix: handle missing cache directory
feat: add node-version-file input
feat!: drop Node 18 support
BREAKING CHANGE: minimum Node version is now 20.
We follow SemVer.
Two tag types per release:
- Immutable
vX.Y.Z— pinned to one commit forever. - Floating major
vX— moves to latest X.x.x.
Consumers pin SHA + # v1 comment. Dependabot auto-updates within major.
Fully automated. On merge to main:
.github/workflows/release.ymlreads commits since last tag.- Determines bump from commit prefixes.
- Creates new
vX.Y.Ztag. - Moves floating
vXtag. - Publishes GitHub Release with changelog.
No manual tagging. No release PRs.
feat!: creates a new major (e.g. v2.0.0 + floating v2). Old floating v1 stays at last 1.x — existing consumers keep working. Migrate consumers
manually; Dependabot won't cross majors by default.