This repo is a demonstration of how to wire up automated release management using GitHub Actions.
semantic-release
- Fully automated version management and package publishingsemantic-release/commit-analyzer
- semantic-release plugin to analyze commits with conventional-changelogsemantic-release/release-notes-generator
- semantic-release plugin to generate changelog content with conventional-changelogsemantic-release/github
- semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues.deepakputhraya/action-pr-title
- Github action to enforce Pull Request title conventions
GitHub Actions are used to run tests and drive automation. Read through the documentation for more usage information.
Name | Description |
---|---|
Release | Runs the semantic-release process on merges to main |
PR Name Check | Enforces PR title conventions on any PR activity. |
Name | Description |
---|---|
.releaserc |
General semantic-release plugin configuation |
semantic.yml |
Enforces PR title conventions on any PR activity. |
Workflow Configuration examples to configure branching rules, releases, channels, version ranges, and more.
The Makefile
has a helper target to prepare a new release branch.
$ make help
create-release-branch Create release branch on main
This repository is modeled after GitFlow - A successful Git branching model. Merging to main
triggers the release processes. The dev
branch is configured as the default branch. All feature work is merged into the dev
branch. Releases are generated by creating a release-*
branch using the processed defined in the create-release-branch
Makefile
target. Release branches generally track dev
exactly, but it's possible to cherry-pick changes. The overall process is meant to enable a release engineering function.
It's also worth noting that a Branch Protection Rule is configured on the dev
branch which requires the PR Name Check action to succeed. This is done to enforce the proper behavior of the semantic-release tooling.