Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
tag

GitHub Action

semver-action

v1.0.1

semver-action

tag

semver-action

Generate a semantic version based on branch name

Installation

Copy and paste the following snippet into your .yml file.

              

- name: semver-action

uses: gandarez/semver-action@v1.0.1

Learn more about this action in gandarez/semver-action

Choose a version

Semantic Versioning Action

This action calculates the next version relying on semantic versioning.

Strategies

If auto bump, it will try to extract the closest tag and calculate the next semantic version. If not, it will bump respecting the value passed.

Branch Names

These are the prefixes we expect when auto bump:

  • ^bugfix/.* or ^hotfix/.* - patch
  • ^doc/.* - build
  • ^feature/.* - minor
  • ^major/.* - major
  • ^misc/.* - build

Scenarios

Auto Bump

  • Not a valid source branch prefix - Increments pre-release version.

        v0.1.0 results in v0.1.0-pre.1
        v1.5.3-pre.2 results in v1.5.3-pre.3
    
  • Source branch is prefixed with bugfix/ and dest branch is develop - Increments patch version.

    v0.1.0 results in v0.1.1-pre.1
    v1.5.3-pre.2 results in v1.5.4-pre.1
    
  • Source branch is prefixed with hotfix/ and dest branch is master - Increments patch version.

    v0.1.0 results in v0.1.1
    v1.5.3-pre.2 results in v1.5.4
    
  • Source branch is prefixed with feature/ and dest branch is develop - Increments minor version.

    v0.1.0 results in v0.2.0-pre.1
    v1.5.3-pre.2 results in v1.6.0-pre.1
    
  • Source branch is prefixed with major/ and dest branch is develop - Increments major version.

    v0.1.0 results in v1.0.0-pre.1
    v1.5.3-pre.2 results in v2.0.0-pre.1
    
  • Source branch is develop and dest branch is master - Takes the closest tag and finalize it.

    v0.1.0 stays v0.1.0
    v1.5.3-pre.2 results in v1.5.3
    

Github Environment Variables

  • GITHUB_SHA

Example usage

Basic

Uses auto bump strategy to calculate the next semantic version.

- id: semver-tag
  uses: gandarez/semver-action@vlatest
- name: "Created tag"
  run: echo "tag ${{ steps.semver-tag.outputs.semver_tag }}"

Custom

- id: semver-tag
  uses: gandarez/semver-action@vlatest
  with:
    prefix: ""
    prerelease_id: "alpha"
    main_branch_name: "trunk"
    develop_branch_name: "dev"
    debug: "true"
- name: "Created tag"
  run: echo "tag ${{ steps.semver-tag.outputs.semver_tag }}"

Inputs

parameter required description default
bump Bump strategy for semantic versioning. Can be auto, major, minor, patch. auto
base_version Version to use as base for the generation, skips version bumps.
prefix Prefix used to prepend the final version. v
prerelease_id Text representing the pre-release identifier. pre
main_branch_name The main branch name. master
develop_branch_name The develop branch name. develop
repo_dir The repository path. current dir
debug Enables debug mode. false

Outpus

parameter description
semver_tag The calculdated semantic version.
is_prerelease True if calculated tag is pre-release.
previous_tag The tag used to calculate next semantic version.
ancestor_tag The ancestor tag based on specific pattern.