From 01807a8d9c48b982402c1fbf0030e0e6d58c76bb Mon Sep 17 00:00:00 2001 From: Mats Bovin Date: Thu, 24 Aug 2023 16:14:28 +0200 Subject: [PATCH] Add script for making a release --- Makefile | 3 +++ sbdi/README.md | 9 +++++++++ sbdi/make-release.sh | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100755 sbdi/make-release.sh diff --git a/Makefile b/Makefile index b3315fb..4d75e2a 100644 --- a/Makefile +++ b/Makefile @@ -3,3 +3,6 @@ run: run-docker: docker compose up --detach + +release: + @./sbdi/make-release.sh diff --git a/sbdi/README.md b/sbdi/README.md index e05f6de..6aaa5d1 100644 --- a/sbdi/README.md +++ b/sbdi/README.md @@ -24,3 +24,12 @@ Build and run in Docker (using Tomcat): ``` make run-docker ``` + +Make a release. This will create a new tag and push it. A new Docker container will be built on Github. +``` +mats@xps-13:~/src/biodiversitydata-se/dashboard (master *)$ make release + +Current version: v2.0.1. Enter the new version (or press Enter for v2.0.2): +Updating to version v2.0.2 +Tag v2.0.2 created and pushed. +``` diff --git a/sbdi/make-release.sh b/sbdi/make-release.sh new file mode 100755 index 0000000..9b01756 --- /dev/null +++ b/sbdi/make-release.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Get the last GitHub tag version +last_tag=$(git describe --tags --abbrev=0) + +major=$(echo "$last_tag" | cut -d. -f1) +minor=$(echo "$last_tag" | cut -d. -f2) +patch=$(echo "$last_tag" | cut -d. -f3) + +new_patch=$((patch + 1)) + +echo +read -p "Current version: $last_tag. Enter the new version (or press Enter for $major.$minor.$new_patch): " new_version_input + +if [ -z "$new_version_input" ]; then + new_version="$major.$minor.$new_patch" +else + new_version="$new_version_input" +fi + +# Validate the new version format (assuming it follows semantic versioning) +if ! [[ "$new_version" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Invalid version format. Please use semantic versioning (e.g., v1.2.3)." + exit 1 +fi + +echo "Updating to version $new_version" + +# Create a new tag +git tag "$new_version" +git push origin "$new_version" + +echo "Tag $new_version created and pushed."