All checks were successful
CD / Release (push) Successful in 40s
Reviewed-on: #17 Co-authored-by: Timo Behrendt <t.behrendt@t00n.de> Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
81 lines
2.6 KiB
Markdown
81 lines
2.6 KiB
Markdown
# Conventional Semantic Git Tag Increment
|
|
|
|
A GitHub Action that automatically increments semantic version tags based on conventional commit messages.
|
|
|
|
Doesn't assume that you are using any special packaging software, etc. It just relies on Git having tags and commit messages.
|
|
|
|
## Usage
|
|
|
|
### Basic workflow
|
|
|
|
```yaml
|
|
name: Auto-tag
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
tag:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: tbehrendt/conventional-semantic-git-tag-increment@v1
|
|
id: tag
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Create and push tag
|
|
run: |
|
|
git tag ${{ steps.tag.outputs.new-tag }}
|
|
git push origin ${{ steps.tag.outputs.new-tag }}
|
|
```
|
|
|
|
### With custom last tag
|
|
|
|
```yaml
|
|
- uses: tbehrendt/conventional-semantic-git-tag-increment@v1
|
|
with:
|
|
last-tag: "v2.1.0"
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
```
|
|
|
|
### With prerelease tags
|
|
|
|
```yaml
|
|
- uses: tbehrendt/conventional-semantic-git-tag-increment@v1
|
|
with:
|
|
prerelease: "true"
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
```
|
|
|
|
## Examples
|
|
|
|
| Commit Message | Current Tag | New Tag | Reason |
|
|
| ----------------------------------- | ----------- | -------- | -------------------- |
|
|
| `feat: add user authentication` | `v1.0.0` | `v1.1.0` | New feature |
|
|
| `fix: resolve login bug` | `v1.1.0` | `v1.1.1` | Bug fix |
|
|
| `feat!: change API response format` | `v1.1.1` | `v2.0.0` | Breaking change |
|
|
| `docs: update README` | `v2.0.0` | `v2.0.1` | Documentation update |
|
|
|
|
### Prerelease Examples
|
|
|
|
| Commit Message | Current Tag | New Tag (prerelease) | Reason |
|
|
| ------------------------------- | ----------- | -------------------- | ----------- |
|
|
| `feat: add user authentication` | `v1.0.0` | `1.1.0-rc-abc123` | New feature |
|
|
| `fix: resolve login bug` | `v1.1.0` | `1.1.1-rc-def456` | Bug fix |
|
|
|
|
## Inputs
|
|
|
|
- `last-tag` (optional): Starting tag to increment from. If not provided, uses the latest tag in the repository.
|
|
- `token` (required): GitHub token for repository access. Use `${{ github.token }}` for public repos or a PAT for private repos.
|
|
- `prerelease` (optional): Whether to create a prerelease tag with `-rc-<github.sha>` suffix. Defaults to `false`.
|
|
- `max-tags` (optional): Maximum number of tags to fetch when looking for the latest non-pre-release tag. Defaults to `50`.
|
|
|
|
## Outputs
|
|
|
|
- `new-tag`: The incremented semantic version tag (e.g., `1.2.3` or `1.2.3-rc-abc123` for prerelease)
|