This action calculates next tag based on git history.
To get the latest tag, it checks both the local history and the origin, which means you don't have to fetch the whole git history prior to running this action.
Supports semver tags and custom formats.
current_tag
- latest found version tag
next_tag
- computed next tag
next_version
- computed next version
- name: get next version
id: 'bump'
uses: allegro-actions/next-version@v1
- name: Push new tag on master
if: github.ref == 'refs/heads/master'
uses: allegro-actions/create-tag@v1
with:
tag: ${{ steps.bump.outputs.next_tag }}
current-tag: ${{ steps.bump.outputs.current_tag }}
Will output v1.0.1 (assuming v1.0.0 tag exists)
You can change prefix to handle my-app-1.0.0 tag
- name: get next tag
id: 'bump'
uses: allegro-actions/next-version@v1
with:
prefix: 'my-app-'
Will output my-app-1.0.1 (assuming my-app-1.0.0 tag exists)
You can add versioning to create v1 tag
- name: get next tag
id: 'bump'
uses: allegro-actions/next-version@v1
with:
versioning: 'single-number'
Will output v2 (assuming v1 tag exists)
Will output v1 if no previous tag found.
You can also force next version.
- name: get next tag
id: 'bump'
uses: allegro-actions/next-version@v1
with:
force: '4.0.0'
Will always output v4.0.0
i.e. adding workflow input parameter to force next tag manually:
name: Release
on:
workflow_dispatch:
inputs:
forceVersion:
description: 'Force version'
required: false
default: ''
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: get next tag
id: 'bump'
uses: allegro-actions/next-version@v1
with:
force: ${{ github.event.inputs.forceVersion }}