This project uses Release it! to automate versioning and utilizes Commitizen to generate consistent and meaningful changelogs.
There is a demo repository available with an explanation and some example flows.
In short:
- Features and bug fixes should be merged into
developwith a Commitizen friendly commit message. - When generating a new release, a new branch
release/[branch-name]should be created fromdevelop. In GitHub this will trigger theReleaseaction, which will run Release it! Then the branch can be merged tomain. - Don't forget to merge
mainback intodevelopwhen complete.
The release/[branch-name] step is crucial, as you may have other important actions listening to the main branch, like deploying or publishing your latest application. If the Release action were to run on main, it would effectively mean your actions are triggered twice, as it generates another commit.