gh-action-bump-version/README.md

230 lines
7.2 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
2022-12-18 22:49:32 +00:00
you'll need to configure 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:**
2022-12-01 20:13:25 +00:00
Customize the messages that trigger the version bump. It must be a string, case sensitive, comma 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'
```
### **check-only-last-commit**
Set check-last-commit-only to only read last commit's message (optional). Example:
```yaml
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
check-last-commit-only: 'true'
```
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
```