github.com/jmrodri/operator-sdk@v0.5.0/release.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  set -e
     4  
     5  [ $# == 1 ] || { echo "usage: $0 version" && exit 1; }
     6  
     7  VER=$1
     8  
     9  [[ "$VER" =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$ ]] || {
    10  	echo "malformed version: \"$VER\""
    11  	exit 2
    12  }
    13  
    14  if test -n "$(git ls-files --others | \
    15  	grep --invert-match '\(vendor\|build/operator-sdk-v.\+\)')";
    16  then
    17  	echo "directory has untracked files"
    18  	exit 1
    19  fi
    20  
    21  if ! $(git diff-index --quiet HEAD --); then
    22  	echo "directory has uncommitted files"
    23  	exit 1
    24  fi
    25  
    26  GO_VER="1.10"
    27  if ! go version | cut -d" " -f3 | grep -q "$GO_VER"; then
    28  	echo "must compile binaries with Go compiler version v${GO_VER}+"
    29  	exit 1
    30  fi
    31  
    32  # Detect whether versions in code were updated.
    33  VER_FILE="version/version.go"
    34  TOML_TMPL_FILE="pkg/scaffold/gopkgtoml.go"
    35  ANS_TOML_TMPL_FILE="pkg/scaffold/ansible/gopkgtoml.go"
    36  HELM_TOML_TMPL_FILE="pkg/scaffold/helm/gopkgtoml.go"
    37  CURR_VER_VER_FILE="$(sed -nr 's/Version = "(.+)"/\1/p' "$VER_FILE" | tr -d ' \t\n')"
    38  CURR_VER_TMPL_FILE="$(sed -nr 's/.*".*v(.+)".*#osdk_version_annotation/v\1/p' "$TOML_TMPL_FILE" | tr -d ' \t\n')"
    39  if [[ "$VER" != "$CURR_VER_VER_FILE" || "$VER" != "$CURR_VER_TMPL_FILE" ]]; then
    40  	echo "versions are not set correctly in $VER_FILE or $TOML_TMPL_FILE"
    41  	exit 1
    42  fi
    43  CURR_VER_ANS_TMPL_FILE="$(sed -nr 's/.*".*v(.+)".*#osdk_version_annotation/v\1/p' "$ANS_TOML_TMPL_FILE" | tr -d ' \t\n')"
    44  if [[ "$VER" != "$CURR_VER_ANS_TMPL_FILE" ]]; then
    45  	echo "versions are not set correctly in $ANS_TOML_TMPL_FILE"
    46  	exit 1
    47  fi
    48  CURR_VER_HELM_TMPL_FILE="$(sed -nr 's/.*".*v(.+)".*#osdk_version_annotation/v\1/p' "$HELM_TOML_TMPL_FILE" | tr -d ' \t\n')"
    49  if [[ "$VER" != "$CURR_VER_HELM_TMPL_FILE" ]]; then
    50  	echo "versions are not set correctly in $HELM_TOML_TMPL_FILE"
    51  	exit 1
    52  fi
    53  
    54  git tag --sign --message "Operator SDK $VER" "$VER"
    55  
    56  git verify-tag --verbose "$VER"
    57  
    58  make release