-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Include workflow for automatic CHANGELOG and version bumps (#913)
* Adds `.github/workflows/version-changelog-update.yml` to automatically bump the app's version and updates `CHANGELOG.md` --------- Co-authored-by: jugglinmike <[email protected]>
- Loading branch information
1 parent
226a472
commit f981da8
Showing
4 changed files
with
103 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Version Bump and Changelog Update | ||
|
||
on: | ||
push: | ||
branches: | ||
- releases | ||
paths-ignore: | ||
- package.json | ||
- CHANGELOG.md | ||
|
||
jobs: | ||
version-changelog-update: | ||
permissions: | ||
contents: write | ||
|
||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout the repository | ||
uses: actions/checkout@v4 | ||
- name: Install NodeJS 18 | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 18 | ||
cache: npm | ||
- name: Conventional Changelog Action | ||
uses: TriPSs/conventional-changelog-action@v3 | ||
with: | ||
github-token: ${{ secrets.github_token }} | ||
git-user-name: github-actions[bot] | ||
git-user-email: github-actions[bot]@users.noreply.github.com | ||
release-count: 0 | ||
preset: conventionalcommits | ||
- name: Pull changes from the development branch | ||
run: | | ||
git config --global pull.rebase false | ||
git pull origin development | ||
- name: Update development with version bump from CHANGELOG.md and package.json | ||
run: git push origin HEAD:development |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Expected workflow for the development to release process | ||
|
||
## Branching strategy | ||
|
||
- Checkout the `development` branch after cloning (or forking) the repository | ||
- Create an appropriately named branch | ||
|
||
## Commits | ||
|
||
To facilitate CHANGELOG generation, automatic version bumps (using [SEMVER](https://semver.org) - X.Y.Z) and version tagging, commit messages MUST follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) practice, which is used in combination with the GitHub Workflow Action, [TriPSs/conventional-changelog-action](https://github.com/TriPSs/conventional-changelog-action). | ||
|
||
What this means is commits intended to automatically update the [CHANGELOG.md](https://github.com/w3c/aria-at-app/blob/development/CHANGELOG.md) and bump the version must be written in a specific format: | ||
``` | ||
<type>[optional scope]: <description> | ||
[optional body] | ||
[optional footer(s)] | ||
``` | ||
|
||
Additional examples are available [here](https://www.conventionalcommits.org/en/v1.0.0/#examples). | ||
|
||
Generally, commits in the following format will be sufficient: | ||
- `fix: <description>` will increment **PATCH** in X.Y.**Z** | ||
- `feat: <description>` will increment **MINOR** in X.**Y**.Z | ||
- `BREAKING CHANGE: OR '!' after any type/scope, eg. feat!: <description>` will increment **MAJOR** in **X**.Y.Z | ||
- NOTE: `zsh` users will have to surround commit messages with single quotes (`'<message>'`) instead of double quotes (`"<message>"`), as `!` is a special modifier for `zsh` | ||
|
||
**NOTE:** This doesn't mean ALL commits have to be written this way, explained in [Merging Pull Request](#merging-pull-request). | ||
|
||
## Creating Pull Request | ||
|
||
- Finalize work on branch | ||
- Create Pull Request from work on branch, typically using `development` as the target branch | ||
|
||
## Merging Pull Request | ||
|
||
### Merging to `development` | ||
|
||
Commits to `development` can either be done using a merge commit or it can be squashed. Squashing is preferred, depending on how the commits are structured. | ||
|
||
If the commits in the Pull Request are mainly following the Conventional Commits practice, using a merge commit would be appropriate, so the scoped commits are not lost when being included in the CHANGELOG. | ||
|
||
Otherwise, use the squash and merge method, and a type (and scope, if applicable) MUST be set for the squashed commits' title before merging. | ||
|
||
### Merging to `releases` | ||
|
||
Commits to `releases` MUST be merged with `Create a merge commit`, so that individual PRs or commits which have already been scoped at that point can be properly included in the CHANGELOG.md update. | ||
|
||
**NOTE:** The [version-changelog-update](https://github.com/w3c/aria-at-app/blob/development/.github/workflows/version-changelog-update.yml) workflow will automatically merge any new changes found in `releases` back into `development`, including the CHANGELOG.md update and any last minute changes before the release. | ||
|
||
## Releasing to production | ||
|
||
When deploying to production, merge `releases` into `main`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters