Skip to content

Commit

Permalink
Improve version_gt to support release-x.y.z and vx.y.z format
Browse files Browse the repository at this point in the history
Signed-off-by: Grant Griffiths <grant@portworx.com>
  • Loading branch information
ggriffiths committed Nov 27, 2019
1 parent 6d674a7 commit f2f0d92
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions prow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ install_snapshot_controller() {

kubectl apply -f "https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${CSI_SNAPSHOTTER_VERSION}/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml"
cnt=0
until kubectl get statefulset snapshot-controller | grep snapshot-controller | grep "1/1"; do
until kubectl get pods | grep '^snapshot-controller.* Running '; do
if [ $cnt -gt 30 ]; then
echo "Running statefulsets:"
kubectl describe statefulsets
Expand Down Expand Up @@ -996,8 +996,29 @@ make_test_to_junit () {
fi
}

# version_gt returns true if arg1 is greater than arg2.
#
# This function expects versions to be one of the following formats:
# X.Y.Z, release-X.Y.Z, vX.Y.Z
#
# where X,Y, and Z are any number.
#
# Partial versions (1.2, release-1.2) work as well.
# The follow substrings are stripped before version comparison:
# - "v"
# - "release-"
#
# Usage:
# version_gt release-1.3 v1.2.0 (returns true)
# version_gt v1.1.1 v1.2.0 (returns true)
# version_gt 1.1.1 v1.2.0 (returns false)
# version_gt 1.1.1 release-1.2.0 (returns false)
# version_gt 1.1.1 release-1.2.0 (returns false)
function version_gt() {
test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1";
versions=$(for ver in "$@"; do ver=${ver#release-}; echo ${ver#v}; done)
greaterVersion=${1#"release-"};
greaterVersion=${greaterVersion#"v"};
test "$(printf '%s' "$versions" | sort -V | head -n 1)" != "$greaterVersion"
}

main () {
Expand Down

0 comments on commit f2f0d92

Please sign in to comment.