diff options
| author | jannfis <jann@mistrust.net> | 2020-12-06 17:11:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-06 17:11:20 +0100 |
| commit | 69fbb79d64a60ab07ce2f65e494d55965a3c0b8c (patch) | |
| tree | 404f0863bdee8923e4028324563c3a00e069feca /hack/release.sh | |
| parent | fed5246080d3818234392550b326f362f0730054 (diff) | |
chore: add some release creation scripts (#131)
* chore: add some release creation scripts
Signed-off-by: jannfis <jann@mistrust.net>
* exclude hack from spelling
Signed-off-by: jannfis <jann@mistrust.net>
* exclude hack from spelling
Signed-off-by: jannfis <jann@mistrust.net>
Diffstat (limited to 'hack/release.sh')
| -rwxr-xr-x | hack/release.sh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/hack/release.sh b/hack/release.sh new file mode 100755 index 0000000..9819f10 --- /dev/null +++ b/hack/release.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +# Simple script to do a release + +TARGET_REMOTE=upstream +TARGET_VERSION="$1" +set -eu +set -o pipefail + +if test "${TARGET_VERSION}" = ""; then + echo "USAGE: $0 <version>" >&2 + exit 1 +fi + +TARGET_TAG="v${TARGET_VERSION}" + +if ! echo "${TARGET_VERSION}" | egrep -q '^[0-9]\.[0-9]\.[0-9]$'; then + echo "Error: Target version '${TARGET_VERSION}' is not well-formed. Must be X.Y.Z" >&2 + exit 1 +fi + +echo "*** checking for current git branch" +RELEASE_BRANCH=$(git rev-parse --abbrev-ref HEAD || true) +if [[ $RELEASE_BRANCH = release-* ]]; then + echo "*** branch is $RELEASE_BRANCH" + IMAGE_TAG=${TARGET_TAG} +else + echo "Error: Branch $RELEASE_BRANCH is not release branch" >&2 + exit 1 +fi + +if ! test -f VERSION; then + echo "Error: You should be in repository root." >&2 + exit 1 +fi + +echo "${TARGET_VERSION}" > VERSION + +echo "*** checking for existance of git tag ${TARGET_TAG}" +if git tag -l "${TARGET_VERSION}" | grep -q "${TARGET_TAG}"; then + echo "Error: Tag with version ${TARGET_TAG} already exists." >&2 + exit 1 +fi + +echo "*** generating new manifests" +export IMAGE_TAG="${TARGET_TAG}" +make manifests + +echo "*** performing release commit" +git commit -S -s -m "Release ${TARGET_TAG}" VERSION manifests/ +git tag ${TARGET_TAG} + +echo "*** build docker image" +make image + +echo +echo "*** done" +echo +echo "If everything is fine, push changes to GitHub and Docker Hub:" +echo +echo " git push ${TARGET_REMOTE} $RELEASE_BRANCH ${TARGET_TAG}" +echo " make IMAGE_TAG='${TARGET_TAG}' image-push" +echo +echo "Then, create release tag and execute upload-release-assets.sh" |
