Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vimtor/action-update-version

🏷 Update your files version field on new releases
https://github.com/vimtor/action-update-version

actions package-json release version-control-system versioning

Last synced: 9 days ago
JSON representation

🏷 Update your files version field on new releases

Awesome Lists containing this project

README

        


🏷 update-version


Update your files version field on new releases



GitHub Workflow Status
GitHub release (latest by date)
GitHub


## 🧠 Why

- Most actions related to version upgrade do it backwards:
when you push a commit with version change in a specific branch a release is created.

- This action does the opposite: when you create a release the
specified files will get updated with the new version, so you don't forget to update them.

This comes in handy when working with git workflows such as [trunk-base-development](https://trunkbaseddevelopment.com/) or [master-only](https://www.youtube.com/watch?v=MWz-9uyHP4s).

## 🚀 Usage

With the following example after creating a new release with tag `v2.0.1` on branch `release`,
a new commit will appear in that same branch with both `package.json` and `app.yaml` updated
with the version field to `2.0.1`.

```yaml
name: Upgrade Version
on:
release:
types: [published]

jobs:
upgrade-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: pocket-apps/action-update-version@v1
with:
files: 'package.json, app.yaml'
version-regexp: '\d+.\d+.\d+'
repo-token: ${{ secrets.GITHUB_TOKEN }}
```

The action will fail if:
- Both `repo-token` and `branch-name` are not supplied
- The tag cannot be found by `octokit`
- The regular expression cannot match the release tag
- You specify a file with unsupported extension

- Supported file extensions: `json`, `yaml` and `yml`. To add one simply submit a PR with a new parser on the `main.ts` file.

## ⚙ Inputs

By supplying the `repo-token` the commit will use the release information: author and branch.

You can change the branch commit target and the commit author if you want.

**Name**|**Description**|**Default**
-----|-----|-----
files|Comma separated list of files to update its version field|package.json
version-regexp|Regular expression to match release tag name|\d+.\d+.\d+
repo-token|GitHub token to get the release information in order to push to branch|`null`
commit-message|Commit message for files update. The %version% will get substituted|ci: update version to v%version%
spacing-level|Number of spaces for formatted files|`2`
branch-name|Default branch name to push changes if not repo-token is provided|*Release target branch*
author-name|Commit author name|*Release author name*
author-email|Commit author email|*Release author email*

## 👋 Support

If you find our work useful, you can [support our work](https://github.com/sponsors/pocket-apps) and win a burrito 🌯