Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rickstaa/action-update-semver
Updates major/minor release tags on a tag push.
https://github.com/rickstaa/action-update-semver
continious-integration docker gh-action github-action-docker github-actions semver versioning
Last synced: 2 months ago
JSON representation
Updates major/minor release tags on a tag push.
- Host: GitHub
- URL: https://github.com/rickstaa/action-update-semver
- Owner: rickstaa
- License: mit
- Created: 2021-01-11T13:29:28.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-23T14:01:47.000Z (7 months ago)
- Last Synced: 2024-09-12T23:57:58.880Z (3 months ago)
- Topics: continious-integration, docker, gh-action, github-action-docker, github-actions, semver, versioning
- Language: Shell
- Homepage: https://github.com/marketplace/actions/update-semver
- Size: 119 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# GitHub Action: Update major/minor semver
[![Docker Image CI](https://github.com/rickstaa/action-update-semver/workflows/Docker%20Image%20CI/badge.svg)](https://github.com/rickstaa/action-update-semver/actions)
[![Code quality CI](https://github.com/rickstaa/action-update-semver/workflows/Code%20quality%20CI/badge.svg)](https://github.com/rickstaa/action-update-semver/actions?query=workflow%3A%22Code+quality+CI%22)
[![Release](https://github.com/rickstaa/action-update-semver/workflows/release/badge.svg)](https://github.com/rickstaa/action-update-semver/actions?query=workflow%3Arelease)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/rickstaa/action-update-semver?logo=github&sort=semver)](https://github.com/rickstaa/action-update-semver/releases)This GitHub Action simplifies the process of updating major/minor release tags on a tag push. For example, it automatically updates both `v1` and `v1.2` tags when releasing version `v1.2.3`. Additionally, it provides the option to move the patch version up to the latest commit, making it convenient for use with tools like [auto-changelog](https://www.npmjs.com/package/auto-changelog) to automatically generate changelogs for your releases.
It's designed to seamlessly integrate with GitHub Actions. For more details on versioning your action, refer to [GitHub Actions documentation](https://help.github.com/en/articles/about-actions#versioning-your-action).
## Inputs
### `tag`
**Optional**. Specifies the existing tag to update from. Defaults to `$GITHUB_REF`.
### `message`
**Optional**. Custom tag message. Default: `Release $TAG`.
### `major_version_tag_only`
**Optional**. Creates only major version tags. Default: `false`.
### `move_patch_tag`
**Optional**. Moves the existing tag to the latest commit inside the GitHub Action. Default: `false`. Note that this only works when you explicitly specify a tag to prevent unexpected changes.
### `github_token`
**Optional**. Only required for checkout@v1 action; otherwise, it's not necessary if you use checkout@v2 or higher.
### `gpg_private_key`
**Optional**. Specifies the GPG private key to sign the tag with. Default: `""`.
### `gpg_passphrase`
**Optional**. Specifies the GPG passphrase to sign the tag with. Default: `""`.
## Example Usage
### General example
```yaml
name: Update Semver
on:
push:
branches-ignore:
- "**"
tags:
- "v*.*.*"
jobs:
update-semver:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rickstaa/action-update-semver@v1
with:
major_version_tag_only: true # (optional, default is "false")
```Certainly! Here's a refined version of your documentation:
### Signing Tags with GPG
To sign tags with GPG, follow these steps:
#### 1. Generate a GPG Key
First, [generate a GPG key](https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key). Once generated, export the GPG private key in ASCII armored format to your clipboard using one of the following commands based on your operating system:
- **macOS:**
```shell
gpg --armor --export-secret-key [email protected] | pbcopy
```- **Ubuntu (GNU base64):**
```shell
gpg --armor --export-secret-key [email protected] -w0 | xclip -selection clipboard
```- **Arch:**
```shell
gpg --armor --export-secret-key [email protected] | xclip -selection clipboard -i
```- **FreeBSD (BSD base64):**
```shell
gpg --armor --export-s[.github/workflows/update_semver.yml](.github/workflows/update_semver.yml)e your GPG passphrase.
```#### 3. Update Workflow YAML
Modify your workflow YAML file to include the GPG private key and passphrase in the `gpg_private_key` and `gpg_passphrase` inputs:
```yaml
name: Update Semver
on:
push:
branches-ignore:
- "**"
tags:
- "v*.*.*"
jobs:
update-semver:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rickstaa/action-update-semver@v1
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg_passphrase: ${{ secrets.PASSPHRASE }}
major_version_tag_only: true # (optional, default is "false")
```This workflow will now sign tags using the specified GPG key during tag creation.
## Contributing
Feel free to open an issue if you have ideas on how to improve this GitHub Action or if you want to report a bug! All contributions are welcome. :rocket: Please consult the [contribution guidelines](CONTRIBUTING.md) for more information.
## Acknowledgment
This action is based on [@haya14busa's](https://github.com/haya14busa/) [update-major-minor-semver](https://github.com/marketplace/actions/update-major-minor-semver).