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:
2026-10-25 13:59:16 +01:00
co-authored by Claude Opus 5.5
parent 55b7a02b85
commit 9ad402876d
5 changed files with 59 additions and 11 deletions
+25 -2
View File
@@ -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)