22set -euo pipefail
33
44VERSION=${1:- }
5+ MODULE=${2:- }
6+
57if [ -z " $VERSION " ]; then
6- echo " ❌ VERSION required: ./release.sh 1.2.3"
8+ echo " ❌ VERSION required"
9+ echo " Usage:"
10+ echo " ./scripts/release.sh 0.0.22"
11+ echo " ./scripts/release.sh 0.0.22 polyglot-core"
712 exit 1
813fi
914
@@ -17,33 +22,57 @@ if git rev-parse "v$VERSION" >/dev/null 2>&1; then
1722 exit 0
1823fi
1924
20- MAVEN_OPTS=" --enable-native-access=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED"
25+ export MAVEN_OPTS=" --enable-native-access=ALL-UNNAMED \
26+ --add-opens=java.base/java.lang=ALL-UNNAMED"
27+
28+ echo " 🔧 Setting version $VERSION for all modules"
29+
30+ ./mvnw -q -ntp -B versions:set \
31+ -DnewVersion=" $VERSION " \
32+ -DprocessAllModules=true \
33+ -DgenerateBackupPoms=false
2134
22- MAVEN_OPTS= " $MAVEN_OPTS " ./mvnw -q -ntp -B \
23- versions:set -DnewVersion= " $VERSION " \
24- -DgenerateBackupPoms=false -DprocessAllModules=true 2> /dev/null
35+ # ------------------------------------------------------------------
36+ # CHANGELOG
37+ # ------------------------------------------------------------------
2538
26- # Changelog via git-cliff
2739if [ ! -f CHANGELOG.md ]; then
28- echo " 📝 Generating initial CHANGELOG.md with git-cliff... "
40+ echo " 📝 Generating initial CHANGELOG.md"
2941 git cliff --config .git-cliff.toml --output CHANGELOG.md
3042else
31- echo " 📝 Updating CHANGELOG.md for $VERSION with git-cliff (prepend)... "
43+ echo " 📝 Updating CHANGELOG.md for $VERSION "
3244 git cliff --config .git-cliff.toml \
3345 --unreleased \
3446 --tag " $VERSION " \
3547 --prepend CHANGELOG.md
3648fi
3749
38- # Stage POMs + changelog
39- git add pom.xml CHANGELOG.md
40- git add * /pom.xml 2> /dev/null || true
41-
42- git commit -m " Release $VERSION " > /dev/null 2>&1 || true
50+ # ------------------------------------------------------------------
51+ # Commit + tag
52+ # ------------------------------------------------------------------
4353
54+ git add pom.xml CHANGELOG.md * /pom.xml
55+ git commit -m " Release $VERSION " || true
4456git tag -a " v$VERSION " -m " Release $VERSION "
4557
46- git push origin " v$VERSION " > /dev/null 2>&1
47- git push origin main > /dev/null 2>&1
58+ git push origin main
59+ git push origin " v$VERSION "
60+
61+ # ------------------------------------------------------------------
62+ # Deploy
63+ # ------------------------------------------------------------------
64+
65+ echo " 🚀 Deploy phase"
66+
67+ if [ -z " $MODULE " ]; then
68+ echo " ➡️ Deploying ALL modules"
69+ ./mvnw -B -ntp deploy -P release
70+ else
71+ echo " ➡️ Deploying module: $MODULE "
72+ ./mvnw -B -ntp deploy \
73+ -P release \
74+ -pl " $MODULE " \
75+ -am
76+ fi
4877
49- echo " ✅ Released $VERSION (tag v $VERSION pushed) "
78+ echo " ✅ Release $VERSION completed "
0 commit comments