gh-action-bump-version/README.md

217 lines
6.9 KiB
Markdown
Raw Normal View History

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
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**
2022-10-28 09:05:57 +00:00
Make sure you use the `actions/checkout@v2` (or later) action!
2020-04-03 11:08:03 +00:00
**Private repos**
To use this Action with `${{ secrets.GITHUB_TOKEN }}` in a private repo, you must set the `contents: write` [permission for the token](https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs) to write to the package.json file specified in the workflow.
```yml
# .github/workflows/[your_workflow].yml
jobs:
publish:
...
permissions:
contents: write
```
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:
2022-10-13 14:52:06 +00:00
node-version: 16
2021-09-22 15:23:09 +00:00
```
2022-10-28 09:05:57 +00:00
⚠️ **Windows** is not fully supported (see [#193](https://github.com/phips28/gh-action-bump-version/issues/193)), if someone uses windows, and wants to run this action, happy to review your PR ;)
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.
* 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:
2021-12-02 09:33:38 +00:00
#### **wording:**
Customize the messages that trigger the version bump. It must be a string, case sensitive, coma separated (optional). Example:
2020-05-05 17:56:37 +00:00
```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-12-02 09:33:38 +00:00
minor-wording: 'add,Adds,new'
major-wording: 'MAJOR,cut-major'
patch-wording: 'patch,fixes' # Providing patch-wording will override commits
# defaulting to a patch bump.
rc-wording: 'RELEASE,alpha'
2020-05-05 17:56:37 +00:00
```
2022-09-02 22:55:28 +00:00
#### **version-type:**
Override the version type taken from the commit message. Usefull when manually running workflow via workflow_dispatch
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
version-type: 'minor'
```
2021-12-02 09:33:38 +00:00
#### **default:**
Set a default version bump to use (optional - defaults to patch). Example:
2020-09-06 11:13:52 +00:00
```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:
2021-12-02 09:33:38 +00:00
default: prerelease
2020-09-06 11:13:52 +00:00
```
2021-12-02 09:33:38 +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:
2021-12-02 09:33:38 +00:00
default: prerelease
preid: 'prc'
```
2021-12-02 09:33:38 +00:00
#### **tag-prefix:**
Prefix that is used for the git tag (optional). Example:
2020-10-22 20:29:43 +00:00
```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:
2021-12-02 09:33:38 +00:00
tag-prefix: 'v'
2020-10-22 20:29:43 +00:00
```
2022-11-20 20:50:01 +00:00
#### **tag-suffix:**
Suffix that is used for the git tag (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag-suffix: '-beta'
```
2021-12-02 09:33:38 +00:00
#### **skip-tag:**
The tag is not added to the git repository (optional). Example:
2021-03-09 11:34:54 +00:00
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
2021-12-02 09:33:38 +00:00
skip-tag: 'true'
2021-03-09 11:34:54 +00:00
```
2021-12-02 09:33:38 +00:00
#### **skip-commit:**
2021-12-09 03:20:01 +00:00
No commit is made after the version is bumped (optional). Must be used in combination with `skip-tag`, since if there's no commit, there's nothing to tag. 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 }}
with:
2021-12-02 09:33:38 +00:00
skip-commit: 'true'
2021-12-09 03:20:01 +00:00
skip-tag: 'true'
```
2021-12-09 03:20:01 +00:00
#### **skip-push:**
If true, skip pushing any commits or tags created after the version bump (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
skip-push: 'true'
```
2021-12-02 09:33:38 +00:00
#### **PACKAGEJSON_DIR:**
Param to parse the location of the desired package.json (optional). Example:
2020-05-05 17:56:37 +00:00
```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
2021-12-02 09:33:38 +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:
2020-11-25 14:47:18 +00:00
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
target-branch: 'master'
```
2021-12-02 09:33:38 +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
2022-01-13 20:25:09 +00:00
#### **bump-policy:**
Set version bump ignore policy. Useful for pull requests between branches with version bumps. Options are as follows:
* `'all'` (default): checks all commit messages and skips bump if any previous bumps found
* `'ignore'`: always bump regardless of whether bumps included in commit messages
* `'last-commit'`: bump if last commit was not version bump
Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
bump-policy: 'ignore'
```
2021-12-09 03:20:01 +00:00
#### [DEPRECATED] **push:**
**DEPRECATED** Set false you want to avoid pushing the new version tag/package.json. Example:
2021-07-13 21:43:33 +00:00
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
push: false
```