feat(release): Versionsnummer zaehlt automatisch hoch
./release.sh und host-agent/release_agent.sh ohne Argument nehmen die hoechste Version aus Datei (package.json bzw. build.gradle) und letztem Git-Tag und zaehlen die letzte Stelle hoch (0.2.6.1 → 0.2.6.2). Mit Argument wie bisher. Vor dem Bauen: Anzeige alt → neu und Rueckfrage; existiert der Tag schon oder ist die Version ungueltig, bricht das Skript vorher ab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+25
-2
@@ -2,7 +2,8 @@
|
||||
# ════════════════════════════════════════════════
|
||||
# ARIA — Release Script
|
||||
# Baut APK, taggt, erstellt Gitea Release
|
||||
# Verwendung: ./release.sh 1.2.0
|
||||
# Verwendung: ./release.sh (Version automatisch +1)
|
||||
# ./release.sh 0.3.0.0 (Version selbst setzen)
|
||||
# Gitea-Kennwort wird interaktiv abgefragt.
|
||||
# ════════════════════════════════════════════════
|
||||
|
||||
@@ -16,8 +17,30 @@ CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
# ── Parameter ─────────────────────────────────
|
||||
VERSION=${1:?"Usage: ./release.sh <version> (z.B. 1.2.0)"}
|
||||
# Ohne Angabe: letzte Stelle automatisch hochzaehlen. Mit Angabe: genau diese.
|
||||
|
||||
# Naechste Version: hoechste aus Datei-Version und letztem Git-Tag, letzte
|
||||
# Stelle +1 (0.2.6.1 → 0.2.6.2). Aufruf: next_version <aktuelle> <tag-prefix>
|
||||
next_version() {
|
||||
local cur="$1" prefix="$2" tagv best
|
||||
tagv=$(git tag -l "${prefix}*" | sed "s/^${prefix}//" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||
best=$(printf '%s\n%s\n' "$cur" "$tagv" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||
[ -z "$best" ] && best="0.0.0.0"
|
||||
awk -F. -v OFS=. '{ $NF = $NF + 1; print }' <<< "$best"
|
||||
}
|
||||
|
||||
CURRENT=$(grep -m1 '"version"' android/package.json | sed -E 's/.*"version": *"([^"]*)".*/\1/')
|
||||
VERSION=${1:-$(next_version "$CURRENT" "v")}
|
||||
if ! [[ "$VERSION" =~ ^[0-9]+(\.[0-9]+)+$ ]]; then
|
||||
echo -e "${RED}Ungueltige Version: $VERSION (z.B. 0.2.6.2)${NC}"; exit 1
|
||||
fi
|
||||
TAG="v$VERSION"
|
||||
if git rev-parse "$TAG" &>/dev/null; then
|
||||
echo -e "${RED}Tag $TAG gibt es schon — andere Version angeben.${NC}"; exit 1
|
||||
fi
|
||||
echo -e "${CYAN}App-Version: $CURRENT → ${GREEN}$VERSION${NC}"
|
||||
read -p "Release $VERSION bauen? [J/n] " OK
|
||||
[[ "$OK" =~ ^[nN] ]] && { echo "Abgebrochen."; exit 0; }
|
||||
|
||||
# ── Gitea-Konfiguration ──────────────────────
|
||||
# Aus .env lesen falls vorhanden (GITEA_URL, GITEA_REPO, GITEA_USER)
|
||||
|
||||
Reference in New Issue
Block a user