Actions
Template has Github specific actions dedicated for releasing software with use of semantic-release. This streamlines process of creating software releases by lifting the burden of assigning appropriate version number that should always fallow semver.
Current configuration of semantic-release in .releaserc also generates automatically new entries in CHANGELOG.md.
Releases are done automatically after merging Pull Request against master with use of Github Actions.
However semantic-release is not compatible with Git Flow - use Github Flow instead(more on that later...)
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
Prerequisites
- Branch names MUST fallow correct Branch Naming Scheme.
- Commits MUST fallow Conventional Commits while adding commits to repository. This is backbone of whole automation system with semantic-release.
- You MUST NOT add
CHANGELOG.mdentries manually, let machines do it. - You MUST NOT create releases(Github/npm etc.) manually, let machines do it.
Please fallow conventions above, otherwise - it makes your contribution un-mergable.
Branch Naming Scheme
Branch naming convention MUST be fallowed and its based on top of Conventional Commits for simplicity:
| type | branch name |
|---|---|
| feature | feat/foo-123/my-feature |
| fix | fix/foo-123/my-fix |
| hotfix | hotfix/foo-123/my-hotfix |
| chore | chore/foo-123/my-chore |
| style | style/foo-123/my-style |
| docs | docs/foo-123/my-docs |
| refactor | refactor/foo-123/my-refactor |
| test | test/foo-123/my-test |
Legend:
foo-123 - it references to optional Project Key, an identifier that is used to identify a scheduled change in tracking software like Jira, YouTrack etc.