summaryrefslogtreecommitdiffhomepage
path: root/scripts/release
diff options
context:
space:
mode:
authorDax <[email protected]>2025-04-22 21:16:14 -0400
committerGitHub <[email protected]>2025-04-22 21:16:14 -0400
commit289f6af3de79c3eeeb8ff73e8aaffabe05989bb9 (patch)
treee9e99fe9c6ad63047e01227c7b8ac1eff4a8bc05 /scripts/release
parentcded7ee9fdfa5bd0dd9cafbb07a450e5883a772e (diff)
downloadopencode-289f6af3de79c3eeeb8ff73e8aaffabe05989bb9.tar.gz
opencode-289f6af3de79c3eeeb8ff73e8aaffabe05989bb9.zip
CI (#43)
* sync * ci test * ci test * tag * sync * sync * ci * sync * enable cgo * sync * add back brew * switch to main
Diffstat (limited to 'scripts/release')
-rwxr-xr-xscripts/release43
1 files changed, 43 insertions, 0 deletions
diff --git a/scripts/release b/scripts/release
new file mode 100755
index 000000000..19c0888b2
--- /dev/null
+++ b/scripts/release
@@ -0,0 +1,43 @@
+#!/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
+
+git fetch --force --tags
+
+# Get the latest Git tag
+latest_tag=$(git tag --sort=committerdate | grep -E '[0-9]' | tail -1)
+
+# 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"
+
+# Split the tag into major, minor, and patch numbers
+IFS='.' read -ra VERSION <<< "$latest_tag"
+
+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"
+
+git tag $new_version
+git push --tags