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

GitHub Action

Semver Conventional Commits

v1.2.0

Semver Conventional Commits

fast-forward

Semver Conventional Commits

Calculate the next release version based on conventional commits since latest tag

Installation

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

              

- name: Semver Conventional Commits

uses: ietf-tools/[email protected]

Learn more about this action in ietf-tools/semver-action

Choose a version

Semver Github Action

Release License

Semver Conventional Commits - Github Action

This GitHub Action automatically determinate the next release version to use based on all the Conventional Commits since the latest tag.

Example workflow

name: Deploy

on:
  push:
    tags:
      - v[0-9]+.[0-9]+.[0-9]+

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v2

      - name: Get Next Version
        id: semver
        uses: ietf-tools/semver-action@v1
        with:
          token: ${{ github.token }}
          branch: main

      - name: Create Release
        uses: ncipollo/release-action@v1
        with:
          allowUpdates: true
          draft: false
          name: ${{ steps.semver.outputs.next }}
          body: Changelog Contents
          token: ${{ github.token }}

Inputs

Field Description Required Default
token Your GitHub token. (e.g. ${{ github.token }})
branch The branch to use when fetching list of commits to compare against. (e.g. main) main
majorList Comma separated commit prefixes, used to bump Major version.
A BREAKING CHANGE note in a commit message will still cause a major bump.
minorList Comma separated commit prefixes, used to bump Minor version. feat, feature
patchList Comma separated commit prefixes, used to bump Patch version. fix, bugfix, perf, refactor, test, tests
patchAll If set to true, will ignore patchList and always count commits as a Patch. false

Outputs

Field Description Example Value
current Current version number / latest tag. v1.1.9
next Next version number in format v0.0.0 v1.2.0
nextStrict Next version number without the v prefix. 1.2.0
nextMajor Next version major number in format v0 v1
nextMajorStrict Next version major number only. 1

⚠️ Important ⚠️

You must already have an existing tag in your repository. The job will exit with an error if it can't find the latest tag to compare against!