github.com/fabianvf/ocp-release-operator-sdk@v0.0.0-20190426141702-57620ee2f090/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="internal/pkg/scaffold/gopkgtoml.go" 35 ANS_TOML_TMPL_FILE="internal/pkg/scaffold/ansible/gopkgtoml.go" 36 HELM_TOML_TMPL_FILE="internal/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