Skip to content

Commit

Permalink
feat(ci): include version/cli checks in tagged releases
Browse files Browse the repository at this point in the history
  • Loading branch information
placer14 committed Sep 15, 2021
1 parent e786a05 commit 9174537
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down
6 changes: 6 additions & 0 deletions .circleci/template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down
41 changes: 41 additions & 0 deletions scripts/version-check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/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`
# trim leading unwanted text ('lotus version ' literal)
lotus_headtrimmed_version=${lotus_raw_version#lotus version }
# trim tailing unwanted text (everything after 1st '+')
lotus_actual_version=${lotus_headtrimmed_version%%+*}

# 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

0 comments on commit 9174537

Please sign in to comment.