40 lines
		
	
	
		
			1009 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1009 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -ex
 | 
						|
 | 
						|
# Validate lotus version matches the current tag
 | 
						|
# $1 - lotus path to execute
 | 
						|
# $2 - lotus git tag for this release
 | 
						|
function validate_lotus_version_matches_tag(){
 | 
						|
  # sanity checks
 | 
						|
  if [[ $# != 2 ]]; then
 | 
						|
    echo "expected 2 args for validate_lotus_version, got ${$#}"
 | 
						|
    exit 100
 | 
						|
  fi
 | 
						|
 | 
						|
  # extract version from `lotus --version` response
 | 
						|
  lotus_path=$1
 | 
						|
  # get version
 | 
						|
  lotus_raw_version=`${lotus_path} --version`
 | 
						|
  # grep for version string
 | 
						|
  lotus_actual_version=`echo ${lotus_raw_version} | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'`
 | 
						|
 | 
						|
  # trim leading 'v'
 | 
						|
  tag=${2#v}
 | 
						|
  # trim possible -rc[0-9]
 | 
						|
  expected_version=${tag%-*}
 | 
						|
 | 
						|
  # check the versions are consistent
 | 
						|
  if [[ ${expected_version} != ${lotus_actual_version} ]]; then
 | 
						|
    echo "lotus version does not match build tag"
 | 
						|
    exit 101
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
_lotus_path=$1
 | 
						|
 | 
						|
if [[ ! -z "${CIRCLE_TAG}" ]]; then
 | 
						|
  validate_lotus_version_matches_tag "${_lotus_path}" "${CIRCLE_TAG}"
 | 
						|
else
 | 
						|
  echo "No CI tag found. Skipping version check."
 | 
						|
fi
 |