Merge pull request #7331 from filecoin-project/mg/release/binary-version-check

feat(ci): include version/cli checks in tagged releases
This commit is contained in:
Jiaying Wang 2021-09-17 11:26:57 -04:00 committed by GitHub
commit 79e141e71d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 51 additions and 0 deletions

View File

@ -92,6 +92,9 @@ jobs:
- run: sudo apt-get install npm
- run:
command: make buildall
- run:
name: check tag and version output match
command: ./scripts/version-check.sh ./lotus
- store_artifacts:
path: lotus
- store_artifacts:
@ -383,6 +386,9 @@ jobs:
- run:
command: make build
no_output_timeout: 30m
- run:
name: check tag and version output match
command: ./scripts/version-check.sh ./lotus
- store_artifacts:
path: lotus
- store_artifacts:

View File

@ -92,6 +92,9 @@ jobs:
- run: sudo apt-get install npm
- run:
command: make buildall
- run:
name: check tag and version output match
command: ./scripts/version-check.sh ./lotus
- store_artifacts:
path: lotus
- store_artifacts:
@ -383,6 +386,9 @@ jobs:
- run:
command: make build
no_output_timeout: 30m
- run:
name: check tag and version output match
command: ./scripts/version-check.sh ./lotus
- store_artifacts:
path: lotus
- store_artifacts:

39
scripts/version-check.sh Executable file
View File

@ -0,0 +1,39 @@
#!/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