2019-10-26 17:35:58 +00:00
## gh-action-bump-version
2019-01-26 23:08:05 +00:00
2019-10-26 17:35:58 +00:00
GitHub Action for automated npm version bump.
2019-06-04 19:38:29 +00:00
2021-07-13 21:43:33 +00:00
This Action bumps the version in package.json and pushes it back to the repo.
It is meant to be used on every successful merge to master but
2019-09-06 18:26:57 +00:00
you'll need to configured that workflow yourself. You can look to the
[`.github/workflows/push.yml` ](./.github/workflows/push.yml ) file in this project as an example.
2019-06-04 19:38:29 +00:00
2020-04-03 23:36:29 +00:00
**Attention**
2020-04-03 11:08:03 +00:00
Make sure you use the `actions/checkout@v2` action!
2021-09-22 15:23:09 +00:00
**Migration: Version v9 and up**
Remove the 'actions/setup-node@v1' step from your action.yml file
```
- name: 'Setup Node.js'
uses: 'actions/setup-node@v1'
with:
node-version: 14
```
2019-07-17 00:12:34 +00:00
### Workflow
2019-06-04 19:38:29 +00:00
2020-05-05 17:56:37 +00:00
* Based on the commit messages, increment the version from the latest release.
2021-07-13 21:43:33 +00:00
* If the string "BREAKING CHANGE", "major" or the Attention pattern `refactor!: drop support for Node 6` is found anywhere in any of the commit messages or descriptions the major
2019-06-04 19:38:29 +00:00
version will be incremented.
2020-02-13 19:37:10 +00:00
* If a commit message begins with the string "feat" or includes "minor" then the minor version will be increased. This works
2019-06-04 19:38:29 +00:00
for most common commit metadata for feature additions: `"feat: new API"` and `"feature: new API"` .
2020-10-06 16:10:02 +00:00
* If a commit message contains the word "pre-alpha" or "pre-beta" or "pre-rc" then the pre-release version will be increased (for example specifying pre-alpha: 1.6.0-alpha.1 -> 1.6.0-alpha.2 or, specifying pre-beta: 1.6.0-alpha.1 -> 1.6.0-beta.0)
2019-06-04 19:38:29 +00:00
* All other changes will increment the patch version.
2019-09-09 19:10:07 +00:00
* Push the bumped npm version in package.json back into the repo.
2019-10-26 19:10:38 +00:00
* Push a tag for the new version back into the repo.
2020-05-05 17:56:37 +00:00
### Usage:
**tag-prefix:** Prefix that is used for the git tag (optional). Example:
```yaml
2020-05-06 11:36:42 +00:00
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
2020-10-24 17:02:53 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-05-06 11:36:42 +00:00
with:
2021-07-01 19:37:56 +00:00
tag-prefix: 'v'
2020-05-05 17:56:37 +00:00
```
2020-09-08 06:46:49 +00:00
2020-09-06 11:13:52 +00:00
**skip-tag:** The tag is not added to the git repository (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
2020-10-24 17:02:53 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-09-06 11:13:52 +00:00
with:
skip-tag: 'true'
```
2020-09-08 06:46:49 +00:00
2021-11-30 14:55:02 +00:00
**skip-commit:** No commit is made after the version is bumped (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
skip-commit: 'true'
```
2020-10-22 20:29:43 +00:00
**default:** Set a default version bump to use (optional - defaults to patch). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
2020-10-24 17:02:53 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-10-22 20:29:43 +00:00
with:
default: prerelease
```
2021-03-09 11:34:54 +00:00
**preid:** Set a preid value will building prerelease version (optional - defaults to 'rc'). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
default: prerelease
preid: 'prc'
```
2020-09-06 10:24:19 +00:00
**wording:** Customize the messages that trigger the version bump. It must be a string, case sensitive, coma separated (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
2020-10-24 17:02:53 +00:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-09-06 10:24:19 +00:00
with:
minor-wording: 'add,Adds,new'
major-wording: 'MAJOR,cut-major'
2020-10-09 17:25:21 +00:00
patch-wording: 'patch,fixes' # Providing patch-wording will override commits
2020-10-09 16:55:11 +00:00
# defaulting to a patch bump.
2020-10-09 17:25:21 +00:00
rc-wording: 'RELEASE,alpha'
2020-09-06 10:24:19 +00:00
```
2020-09-08 06:46:49 +00:00
2020-05-05 17:56:37 +00:00
**PACKAGEJSON_DIR:** Param to parse the location of the desired package.json (optional). Example:
```yaml
2020-05-06 11:36:42 +00:00
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
2020-10-24 17:02:53 +00:00
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2020-10-24 17:03:19 +00:00
PACKAGEJSON_DIR: 'frontend'
2020-05-05 17:56:37 +00:00
```
2020-11-25 14:47:18 +00:00
**TARGET-BRANCH:** Set a custom target branch to use when bumping the version. Useful in cases such as updating the version on master after a tag has been set (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
target-branch: 'master'
```
2021-03-02 21:52:52 +00:00
**commit-message:** Set a custom commit message for version bump commit. Useful for skipping additional workflows run on push. Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
commit-message: 'CI: bumps version to {{version}} [skip ci]'
2021-07-01 19:37:56 +00:00
```
2021-07-13 21:43:33 +00:00
**push:** Set false you want to avoid pushing the new version tag/package.json. Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
push: false
```