From bf64e20001eb2e9e31cafe0ae09f16e6c2e9c3e5 Mon Sep 17 00:00:00 2001
From: Timo Furrer <tfurrer@gitlab.com>
Date: Thu, 28 Mar 2024 13:49:22 +0100
Subject: [PATCH] Fix release make target

---
 .gitlab/scripts/check-semantic-version.sh | 7 +++++++
 Makefile                                  | 8 +++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/.gitlab/scripts/check-semantic-version.sh b/.gitlab/scripts/check-semantic-version.sh
index 5cfd501..539dac8 100755
--- a/.gitlab/scripts/check-semantic-version.sh
+++ b/.gitlab/scripts/check-semantic-version.sh
@@ -4,3 +4,10 @@
 SEMANTIC_VERSION_REGEX='^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
 
 cat - | grep -qE "$SEMANTIC_VERSION_REGEX"
+
+exit_code=$?
+if [ $exit_code -ne 0 ]; then
+  echo "The given version doesn't match the semantic versioning format."
+fi
+
+exit $exit_code
diff --git a/Makefile b/Makefile
index 9fa6cf4..259b129 100644
--- a/Makefile
+++ b/Makefile
@@ -53,10 +53,12 @@ backports:
 
 .PHONY: release
 release:
-	@echo -n $(VERSION) | ./.gitlab/scripts/check-semantic-version.sh
-	@[ "main" = "$(shell git rev-parse --abbrev-ref HEAD)" ] || echo "Please checkout the main branch first: git checkout main"
+	echo "Starting release process for $(VERSION) ..."
+	@echo "$(VERSION)" | ./.gitlab/scripts/check-semantic-version.sh
+	@[ "main" = "$(shell git rev-parse --abbrev-ref HEAD)" ] || (echo "Please checkout the main branch first: git checkout main" && false)
+	@[ -n "$(GITLAB_TOKEN)" ] || (echo "Please set the GITLAB_TOKEN environment variable" && false)
 	@echo "Creating changelog ..."
-	@curl --method POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" 'https://gitlab.com/api/v4/projects/components%2Fopentofu/repository/changelog' --data "version=$(VERSION)&message='Add changelog for $(VERSION) [skip ci]'"
+	@curl --fail-with-body --request POST --header "PRIVATE-TOKEN: $(GITLAB_TOKEN)" 'https://gitlab.com/api/v4/projects/components%2Fopentofu/repository/changelog' --data "version=$(VERSION)&message='Add changelog for $(VERSION) [skip ci]'"
 	@echo "Pulling changelog ..."
 	@git pull
 	@echo "Tagging $(VERSION) ..."
-- 
GitLab