summaryrefslogtreecommitdiffhomepage
path: root/script/release
diff options
context:
space:
mode:
Diffstat (limited to 'script/release')
-rwxr-xr-xscript/release42
1 files changed, 42 insertions, 0 deletions
diff --git a/script/release b/script/release
new file mode 100755
index 000000000..631cd5a7b
--- /dev/null
+++ b/script/release
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+# Parse command line arguments
+minor=false
+while [ "$#" -gt 0 ]; do
+ case "$1" in
+ --minor) minor=true; shift 1;;
+ *) echo "Unknown parameter: $1"; exit 1;;
+ esac
+done
+
+# Get the latest release from GitHub
+latest_tag=$(gh release list --limit 1 --json tagName --jq '.[0].tagName')
+
+# If there is no tag, exit the script
+if [ -z "$latest_tag" ]; then
+ echo "No tags found"
+ exit 1
+fi
+
+echo "Latest tag: $latest_tag"
+
+# Remove the 'v' prefix and split into major, minor, and patch numbers
+version_without_v=${latest_tag#v}
+IFS='.' read -ra VERSION <<< "$version_without_v"
+
+if [ "$minor" = true ]; then
+ # Increment the minor version and reset patch to 0
+ minor_number=${VERSION[1]}
+ let "minor_number++"
+ new_version="${VERSION[0]}.$minor_number.0"
+else
+ # Increment the patch version
+ patch_number=${VERSION[2]}
+ let "patch_number++"
+ new_version="${VERSION[0]}.${VERSION[1]}.$patch_number"
+fi
+
+echo "New version: $new_version"
+
+gh workflow run publish.yml -f version="$new_version"
+