graphql-engine/scripts/tag-release.sh

57 lines
1.8 KiB
Bash
Raw Normal View History

2018-09-13 12:33:13 +03:00
#!/usr/bin/env bash
#
# tag-release.sh
#
# Update installation manifests with the release tag, and execute other release
# hygiene tasks, makes a commit and tags that commit with the given tag.
#
# Usage: ./tag-release.sh <tag> [<optional-tag-message>]
#
# Example: ./tag-release.sh v1.1.0
#
# exit on error
set -e
# get the repo root
ROOT="$(readlink -f ${BASH_SOURCE[0]%/*}/../)"
# check if required argument is set
if [ -z "$1" ]; then
echo "Usage: ./tag-release.sh <tag> [<optional-tag-message>]"
exit 1
fi
# assign arguments to variables
TAG=$1
MESSAGE=$2
# default message to tag
if [ -z "$MESSAGE" ]; then
MESSAGE="$TAG"
fi
# replace the image version with latest tag for all references in install-manifests
find "$ROOT/install-manifests" \
-type f -exec sed -i -E \
's#(hasura/graphql-engine:)v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(\-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(.*)*$#\1'"${TAG}"'\9#' {} \;
# update version in CLI installation instructions
sed -i -E 's#(.*)v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(\-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(.*)*$#\1'"${TAG}"'\9#' "${ROOT}/cli/README.md" "${ROOT}/docs/graphql/core/hasura-cli/install-hasura-cli.rst" "${ROOT}/cli/get.sh"
# add the latest tag to the catalog_versions file
[ -n "$(tail -c1 "$ROOT/server/src-rsr/catalog_versions.txt")" ] && echo >> "$ROOT/server/src-rsr/catalog_versions.txt"
echo $TAG $(cat "$ROOT/server/src-rsr/catalog_version.txt") >> "$ROOT/server/src-rsr/catalog_versions.txt"
git add "$ROOT/install-manifests" \
"$ROOT/server/src-rsr" \
"${ROOT}/cli/README.md" \
"${ROOT}/docs/graphql/core/hasura-cli/install-hasura-cli.rst" \
"${ROOT}/cli/get.sh"
2018-09-13 12:33:13 +03:00
git commit -m "tag release $TAG"
2018-09-13 12:33:13 +03:00
git tag -a "$TAG" -m "$MESSAGE"
echo "tagged $TAG"