From 2f0a5a4e91deba7cd64b7e580e6fd6c1b9c0d130 Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Tue, 23 Jan 2018 14:35:36 +0100 Subject: [PATCH 1/2] Release script to facilitate releases --- release.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 release.sh diff --git a/release.sh b/release.sh new file mode 100755 index 00000000..38f3be11 --- /dev/null +++ b/release.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +yesno () { + if exists whiptail; then + whiptail --yesno "$1" 10 60 + return + elif exists dialog; then + dialog --yesno "$1" 10 60 + return + fi + + read -p "$1 (y/N)" answer + case ${answer:0:1} in + y|Y ) + return 0 + ;; + * ) + return 1 + ;; + esac +} + +set -e + +if [ "$1" = "" ]; then + echo "Usage: $0 " + exit 1 +fi +version="$1" +version_sane="$(echo $version | sed 's/^[0-9]\.[0-9]\+\.[0-9]\+$/YES/')" +if [ "$version_sane" != "YES" ]; then + echo "Version should be in the format '1.23.45'" + exit 1 +fi +version_major=${version%.*} + +echo "Changing directory to root of repository" +cd "${0%/*}" + +echo "Changing to branch 'release/$version_major'" +git checkout "release/$version_major" + +tag="$(git tag --contains)" +branch="$(git symbolic-ref --quiet --short HEAD || git rev-parse --short HEAD)" +if [ "$tag" = "v$version" ]; then + echo "Already tagged!" +else + echo "Creating new tag 'v$version" + git tag --annotate "v$version" +fi + +if ! yesno "Do you want to build a docker container?"; then + exit 1 +fi + +if [ -n "$(git status --porcelain)" ]; then + echo "Unclean working directory!" + git status + exit 1 +fi + +docker_tag="registry.gitlab.com/thaliawww/concrexit:$version" + +docker build -t "$docker_tag" . + +if yesno "Do you want to push the container?"; then + docker push "$docker_tag" +fi -- GitLab From 10cb63aac17bb1920bdf90e2eb728ef3aeea7934 Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Wed, 24 Jan 2018 07:11:18 +0100 Subject: [PATCH 2/2] More compatible sed call --- release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.sh b/release.sh index 38f3be11..cc619ca8 100755 --- a/release.sh +++ b/release.sh @@ -32,7 +32,7 @@ if [ "$1" = "" ]; then exit 1 fi version="$1" -version_sane="$(echo $version | sed 's/^[0-9]\.[0-9]\+\.[0-9]\+$/YES/')" +version_sane="$(echo $version | sed -Ee 's/^[0-9]\.[0-9]{1,}\.[0-9]{1,}$/YES/')" if [ "$version_sane" != "YES" ]; then echo "Version should be in the format '1.23.45'" exit 1 -- GitLab