44 lines
1.1 KiB
Bash
44 lines
1.1 KiB
Bash
![]() |
# Requires access to an environment variable GH_TOKEN
|
||
|
# If you are in the path of the git repository the gh release list will automatically point to that git repo
|
||
|
# aka cd /some/path/modeling-app
|
||
|
# $ gh release list
|
||
|
# Get the latest semver tag from git
|
||
|
latest_tag=$(gh release list --json name,isLatest --jq '.[] | select(.isLatest)|.name')
|
||
|
|
||
|
# Function to bump version numbers
|
||
|
bump_version() {
|
||
|
local version=$1
|
||
|
local bump_type=$2
|
||
|
local major=$(echo $version | cut -d '.' -f 1 | sed 's/v//')
|
||
|
local minor=$(echo $version | cut -d '.' -f 2)
|
||
|
local patch=$(echo $version | cut -d '.' -f 3)
|
||
|
|
||
|
case "$bump_type" in
|
||
|
major)
|
||
|
major=$((major + 1))
|
||
|
minor=0
|
||
|
patch=0
|
||
|
;;
|
||
|
minor)
|
||
|
minor=$((minor + 1))
|
||
|
patch=0
|
||
|
;;
|
||
|
*)
|
||
|
patch=$((patch + 1))
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
echo "v${major}.${minor}.${patch}"
|
||
|
}
|
||
|
|
||
|
# Determine the type of bump based on the argument
|
||
|
bump_type=${1:-minor}
|
||
|
|
||
|
# Bump the version
|
||
|
new_version=$(bump_version $latest_tag $bump_type)
|
||
|
|
||
|
# Print the new semver tag
|
||
|
# Example output v0.27.1
|
||
|
# Yes it will include the v at the start
|
||
|
echo $new_version
|