6cf805d29b5e818975d9049148124768bc2f393e
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
CI / Check Dist (pull_request) Successful in 14s
CI / Dry-Run Prerelease (pull_request) Failing after 55s
CI / Test (pull_request) Failing after 1m6s
CI / Dry-Run (pull_request) Failing after 4m1s
Run TAS / run-tas (pull_request) Successful in 8m42s
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
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
- uses: tbehrendt/conventional-semantic-git-tag-increment@v1
with:
last-tag: "v2.1.0"
token: ${{ secrets.GITHUB_TOKEN }}
With prerelease tags
- 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 tofalse.max-tags(optional): Maximum number of tags to fetch when looking for the latest non-pre-release tag. Defaults to50.
Outputs
new-tag: The incremented semantic version tag (e.g.,1.2.3or1.2.3-rc-abc123for prerelease)
Languages
TypeScript
99.1%
JavaScript
0.9%