Nothing Special   »   [go: up one dir, main page]

Skip to content

choffmeister/git-describe-semver

Repository files navigation

git-describe-semver

Replacement for git describe --tags that produces semver compatible versions that follow to semver sorting rules.

Comparison

Previous git tag git describe --tags git-describe-semver --fallback v0.0.0
v1.2.3 v1.2.3 v1.2.3
v1.2.3 v1.2.3-23-gabc1234 v1.2.4-dev.23.gabc1234
v1.3.0-rc.1 v1.3.0-rc.1-23-gabc1234 v1.3.0-rc.1.dev.23.gabc1234
v1.3.0-rc.1+info v1.3.0-rc.1+info-23-gabc1234 v1.3.0-rc.1.dev.23.gabc1234+info
none fail v0.0.0-dev.23.gabc1234

Next Release

Previous git tag git describe --tags git-describe-semver --fallback v0.0.0 --next-release
v1.2.3 v1.2.3 v1.2.4 patch
v1.2.3 v1.2.3-23-gabc1234 v1.2.4 patch
v1.3.0-rc.1 v1.3.0-rc.1-23-gabc1234 v1.3.0 patch / minor
v1.3.1-rc.1 v1.3.1-rc.1-23-gabc1234 v1.4.0 minor
v1.0.0-rc.1 v1.0.0-rc.1-23-gabc1234 v1.0.0 major
v1.0.0 v1.0.0 v2.0.0 major
v1.0.1-rc.1 v1.0.1-rc.1-23-gabc1234 v2.0.0 major
none fail v0.0.0 patch / minor / major

Usage

  • Flag --dir /some/git/worktree: Git worktree directory (defaults to current directory .)
  • Flag --fallback v0.0.0: Fallback to given tag name if no tag is available
  • Flag --drop-prefix: Drop any present prefix (like v) from the output
  • Flag --prerelease-suffix: Adds a dash-separated suffix to the prerelease part
  • Flag --prerelease-prefix: Adds a dash-separated prefix to the prerelease part (defaults to dev)
  • Flag --prerelease-timestamped: Use timestamp instead of commit count for prerelease
  • Flag --next-release: Bump current version to next release (choices: major, minor, patch)
  • Flag --format: Changes output (use <version> as placeholder)

Docker

cd my-git-directory
docker pull ghcr.io/choffmeister/git-describe-semver:latest
docker run --rm -v $PWD:/workdir ghcr.io/choffmeister/git-describe-semver:latest

GitHub action

# .github/workflows/build.yml
name: build
jobs:
  update:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 0
    - id: git-describe-semver
      uses: choffmeister/git-describe-semver@main
      with:
        version: latest
        dir: .
        fallback: v0.0.0
        drop-prefix: true
        prerelease-prefix: dev
        prerelease-suffix: SNAPSHOT
        prerelease-timestamped: true
        next-release: ''
    - run: echo This is the version ${{ steps.git-describe-semver.outputs.version }}