summaryrefslogtreecommitdiff
path: root/workhorse/_support/tag.sh
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/_support/tag.sh')
-rw-r--r--workhorse/_support/tag.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/workhorse/_support/tag.sh b/workhorse/_support/tag.sh
new file mode 100644
index 00000000000..639fd141dad
--- /dev/null
+++ b/workhorse/_support/tag.sh
@@ -0,0 +1,45 @@
+set -e
+
+main() {
+ version=$1
+ set_version
+
+ changelog
+
+ git commit VERSION -m "Update VERSION to $version"
+
+ tag_name="v${version}"
+ git tag $TAG_OPTS -m "Version ${version}" -a ${tag_name}
+ git show ${tag_name}
+ cat <<'EOF'
+
+ Remember to now push your tag, either to gitlab.com (for a
+ normal release) or dev.gitlab.org (for a security release).
+EOF
+}
+
+set_version() {
+ if ! echo "${version}" | grep -q '^[0-9]\+\.[0-9]\+\.[0-9]\+$' ; then
+ echo "Invalid VERSION: ${version}"
+ exit 1
+ fi
+
+ if git tag --list | grep -q "^v${version}$" ; then
+ echo "Tag already exists for ${version}"
+ exit 1
+ fi
+
+ echo "$version" > VERSION
+}
+
+changelog() {
+ _support/generate_changelog "$version"
+
+ git commit CHANGELOG changelogs/unreleased --file - <<EOF
+Update CHANGELOG for ${version}
+
+[ci skip]
+EOF
+}
+
+main "$@"