70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if ! git diff-index --quiet HEAD --; then
							 | 
						||
| 
								 | 
							
								  echo "Please stash uncommitted changes before running release script"
							 | 
						||
| 
								 | 
							
								  exit 1
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								git checkout main
							 | 
						||
| 
								 | 
							
								git pull
							 | 
						||
| 
								 | 
							
								git fetch --all
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Get the latest semver tag from git
							 | 
						||
| 
								 | 
							
								latest_tag=$(jq -r '.version' package.json)
							 | 
						||
| 
								 | 
							
								latest_tag="v$latest_tag"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Print the latest semver tag
							 | 
						||
| 
								 | 
							
								echo "Latest semver tag: $latest_tag"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 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:-patch}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Bump the version
							 | 
						||
| 
								 | 
							
								new_version=$(bump_version $latest_tag $bump_type)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Print the new semver tag
							 | 
						||
| 
								 | 
							
								echo "New semver tag: $new_version"
							 | 
						||
| 
								 | 
							
								new_version_number=${new_version:1}
							 | 
						||
| 
								 | 
							
								echo "New version number without 'v': $new_version_number"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								git checkout -b "cut-release-$new_version"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "$(jq --arg v "$new_version_number" '.version=$v' package.json --indent 2)" > package.json
							 | 
						||
| 
								 | 
							
								echo "$(jq --arg v "$new_version_number" '.package.version=$v' src-tauri/tauri.conf.json --indent 2)" > src-tauri/tauri.conf.json
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								git add package.json src-tauri/tauri.conf.json
							 | 
						||
| 
								 | 
							
								git commit -m "Cut release $new_version"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo ""
							 | 
						||
| 
								 | 
							
								echo "Versions has been bumped in relevant json files, a branch has been created and committed to."
							 | 
						||
| 
								 | 
							
								echo ""
							 | 
						||
| 
								 | 
							
								echo "What's left for you to do is, push the branch and make the release PR."
							 | 
						||
| 
								 | 
							
								echo ""
							 |