containerized-data-importer/hack/version/lib.sh
Michael Henriksen 75f4fd6f2f
update k8s deps to 18.6 and controller runtime to 0.6.2 (#1330)
* update k8s deps to 1.18.6 and controller runtime to 0.6.2

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>

* remove building code generators from docker image.  This way the k8s ligray version only has to be updated in go.mod

Do more stuff in the bazel container.  Faster and better interop

Fix unit tests

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>

* make format

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>

* remove unnecessary rsync

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>

* redo code generator dep management

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>

* builder uses go modules

Signed-off-by: Michael Henriksen <mhenriks@redhat.com>
2020-08-07 14:09:52 +02:00

117 lines
3.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# lib.sh
# doIncrement replaces the oldVersion value with the newVersion in the given file
function setNewVersion() {
local file=$1
local oldVersion=$2
local newVersion=$3
sed -i "s#$oldVersion#$newVersion#g" $file
}
# pushNewVersion indexes only the files where versions are known to be specified,
# commits the changes, and pushes to master
# Parameters:
# $1: the new version tag
# $@: Known files containing an updated version value
function commitAndTag() {
local new_tag_name="$1"
shift
local files="$@"
printf "Adding changed files\n"
for f in "$files"; do
printf "Adding: %s\n" $files
git add $f
done
printf "Commiting changed files\n"
git commit -m "Update Version"
printf "Creating new tag for commit (%s)\n" $new_tag_name
git tag -f -a -m "Update Version" $new_tag_name
}
function verifyOnMaster() {
local branch="master"
printf "Verifying current branch is %s\n" "$branch"
if [ "$(git rev-parse --abbrev-ref HEAD)" != "$branch" ]; then
printf "Please checkout %s branch before continuing.\n" $branch
exit 1
fi
}
function verifyNoDiff() {
printf "Checking commit diff between local and upstream master branches\n"
local upstream="$(git remote -v | grep 'kubevirt/containerized-data-importer' | awk 'NR==1{print $1}')"
local curBranch="$(git rev-parse --abbrev-ref HEAD)"
if [ -z "$upstream" ]; then
printf "No upstream remote repository detected, cannot verify commit differences\n"
exit 1
fi
if [ -z "$curBranch" ]; then
printf "No current branch was found, exiting\n"
exit 1
fi
if ! git fetch "$upstream" master; then
exit 1
fi
if [ -n "$(git rev-list --left-right "$upstream/master"..."$curBranch")" ]; then
printf "Detected commit difference between %s and current branch (%s). Merge/rebase %s and retry.\n" "$upstream" "$curBranch" "$upstream"
exit 1
fi
printf "Verified local master matches %s\n" "$upstream"
}
function verifyVersionFormat() {
printf "Validating version format\n"
local newVersion="$1"
# TODO improve regex to handle *-alpha.# suffixes
if ! [[ "$newVersion" =~ ^v[0-9]+\.[0-9]+\.[0-9]+ ]]; then
printf "User defined version '%s' does not match semantic version format (v#.#.#*)\n" "$newVersion"
exit 1
fi
}
function getCurrentVersion() {
local cv="$(git describe --tags --abbrev=0 HEAD)"
if [ -z $cv ]; then
exit 1
fi
printf $cv
}
function getVersionedFiles() {
local curVersion=$1
local repoRoot=$2
local verFiles="$(grep -rl --exclude-dir={vender,bin,.git} --exclude={go.mod,go.sum,.git*} "$curVersion" $repoRoot/ 2>/dev/null)"
if [ -z "$verFiles" ]; then
printf "" # this func exec'd inside subshell, so return null string
exit 1
fi
printf "$(echo $verFiles | tr '\n' ' ')"
}
function acceptChanges() {
local curVersion=$1
local newVersion=$2
local targetFiles=$3
printf "\nThe version will be changed from '%s' to '%s' in:\n" "$curVersion" "$newVersion"
printf "%s\n" "$(echo $targetFiles | tr ' ' '\n')"
read -n 1 -p "Do you accept these changes [N|y]: " key
printf "\n"
case "$key" in
y | Y)
printf "Continuing with version update\n"
;;
?)
printf "Aborting\n"
exit 1
;;
esac
}