40 lines
1007 B
Bash
40 lines
1007 B
Bash
|
#!/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
|