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:
@@ -672,7 +672,8 @@ cd android
|
|||||||
### Release auf Gitea veroeffentlichen
|
### Release auf Gitea veroeffentlichen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./release.sh 1.2.0
|
./release.sh # Version automatisch +1 (0.2.6.1 → 0.2.6.2)
|
||||||
|
./release.sh 1.2.0 # oder Version selbst setzen
|
||||||
```
|
```
|
||||||
|
|
||||||
Das Script macht alles in einem Schritt:
|
Das Script macht alles in einem Schritt:
|
||||||
@@ -706,7 +707,7 @@ die VM voll laeuft:
|
|||||||
|
|
||||||
Die App prueft beim Start ob eine neuere Version auf dem RVS liegt.
|
Die App prueft beim Start ob eine neuere Version auf dem RVS liegt.
|
||||||
Der Update-Flow:
|
Der Update-Flow:
|
||||||
1. `./release.sh 0.0.3.0` → APK wird auf RVS kopiert (via scp)
|
1. `./release.sh` (Version automatisch +1) → APK wird auf RVS kopiert (via scp)
|
||||||
2. Alternativ: `git pull` auf dem RVS-Server → APK in `rvs/updates/`
|
2. Alternativ: `git pull` auf dem RVS-Server → APK in `rvs/updates/`
|
||||||
3. App sendet `update_check` mit aktueller Version
|
3. App sendet `update_check` mit aktueller Version
|
||||||
4. RVS vergleicht → sendet `update_available`
|
4. RVS vergleicht → sendet `update_available`
|
||||||
@@ -1238,7 +1239,7 @@ cd host-agent/android && ./build.sh # Docker (Android-SDK + Gradle)
|
|||||||
# -> dist/aria-android-agent.apk
|
# -> dist/aria-android-agent.apk
|
||||||
|
|
||||||
# Release mit allen Agent-Artefakten (Linux/Windows/Android) als Gitea-Assets:
|
# Release mit allen Agent-Artefakten (Linux/Windows/Android) als Gitea-Assets:
|
||||||
cd host-agent && ./release_agent.sh 0.0.1.4
|
cd host-agent && ./release_agent.sh # Version automatisch +1
|
||||||
```
|
```
|
||||||
|
|
||||||
Der Signaturschluessel liegt fest in `host-agent/android/aria-agent.keystore`
|
Der Signaturschluessel liegt fest in `host-agent/android/aria-agent.keystore`
|
||||||
|
|||||||
@@ -142,12 +142,13 @@ Danach die `.env` unter `%ProgramData%\ARIA-Host-Agent\` mit RVS-Zugang +
|
|||||||
|
|
||||||
## Release (Binaries als Gitea-Assets)
|
## Release (Binaries als Gitea-Assets)
|
||||||
|
|
||||||
`release_agent.sh <version>` baut alles Docker-Baubare und hängt es als
|
`release_agent.sh [version]` baut alles Docker-Baubare und hängt es als
|
||||||
**Release-Asset** an den Tag `agent-v<version>` — nichts landet im Git-Tree:
|
**Release-Asset** an den Tag `agent-v<version>` — nichts landet im Git-Tree:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./release_agent.sh 0.2.0 # Linux + Android + Windows (Wine)
|
./release_agent.sh # Version automatisch +1 (0.0.1.6 → 0.0.1.7)
|
||||||
SKIP_WINDOWS=1 ./release_agent.sh 0.2.0 # ohne Windows (schneller)
|
./release_agent.sh 0.2.0 # Version selbst setzen; Linux + Android + Windows (Wine)
|
||||||
|
SKIP_WINDOWS=1 ./release_agent.sh # ohne Windows (schneller)
|
||||||
```
|
```
|
||||||
|
|
||||||
Assets: `aria-host-agent-linux-x64`, `aria-host-agent-android-agent-v<v>.apk`,
|
Assets: `aria-host-agent-linux-x64`, `aria-host-agent-android-agent-v<v>.apk`,
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ es wird als **Release-Asset** an einen Tag gehaengt. Das macht `release_agent.sh
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd host-agent
|
cd host-agent
|
||||||
./release_agent.sh 0.2.0
|
./release_agent.sh # Version automatisch +1 (oder: ./release_agent.sh 0.2.0)
|
||||||
```
|
```
|
||||||
|
|
||||||
Das Skript (wie die `release.sh` der Haupt-App, Version als Parameter):
|
Das Skript (wie die `release.sh` der Haupt-App, Version als Parameter):
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
# Gitea-Release-Assets an einen Tag. NICHTS wandert in den Git-Tree —
|
# Gitea-Release-Assets an einen Tag. NICHTS wandert in den Git-Tree —
|
||||||
# Binaries leben nur unter "Releases" (blaeht clone/History nicht auf).
|
# Binaries leben nur unter "Releases" (blaeht clone/History nicht auf).
|
||||||
#
|
#
|
||||||
# Verwendung: ./release_agent.sh <version> (z.B. ./release_agent.sh 0.2.0)
|
# Verwendung: ./release_agent.sh (Version automatisch +1)
|
||||||
|
# ./release_agent.sh 0.1.0.0 (Version selbst setzen)
|
||||||
#
|
#
|
||||||
# Artefakte:
|
# Artefakte:
|
||||||
# - Linux-x64-Binary (Docker, PyInstaller) -> immer
|
# - Linux-x64-Binary (Docker, PyInstaller) -> immer
|
||||||
@@ -31,8 +32,30 @@ ROOT_DIR="$(cd .. && pwd)"
|
|||||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC='\033[0m'
|
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC='\033[0m'
|
||||||
|
|
||||||
# ── Parameter ────────────────────────────────────────────────────────
|
# ── Parameter ────────────────────────────────────────────────────────
|
||||||
VERSION=${1:?"Usage: ./release_agent.sh <version> (z.B. 0.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 "versionName" android/app/build.gradle | sed -E "s/.*versionName '([^']*)'.*/\1/")
|
||||||
|
VERSION=${1:-$(next_version "$CURRENT" "agent-v")}
|
||||||
|
if ! [[ "$VERSION" =~ ^[0-9]+(\.[0-9]+)+$ ]]; then
|
||||||
|
echo -e "${RED}Ungueltige Version: $VERSION (z.B. 0.0.1.7)${NC}"; exit 1
|
||||||
|
fi
|
||||||
TAG="agent-v$VERSION"
|
TAG="agent-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}Agent-Version: $CURRENT → ${GREEN}$VERSION${NC}"
|
||||||
|
read -p "Release $VERSION bauen? [J/n] " OK
|
||||||
|
[[ "$OK" =~ ^[nN] ]] && { echo "Abgebrochen."; exit 0; }
|
||||||
|
|
||||||
# ── Gitea-Konfiguration (env > host-agent/.env > Repo-Wurzel-.env) ────
|
# ── Gitea-Konfiguration (env > host-agent/.env > Repo-Wurzel-.env) ────
|
||||||
[ -f "$SCRIPT_DIR/.env" ] && source "$SCRIPT_DIR/.env"
|
[ -f "$SCRIPT_DIR/.env" ] && source "$SCRIPT_DIR/.env"
|
||||||
|
|||||||
+25
-2
@@ -2,7 +2,8 @@
|
|||||||
# ════════════════════════════════════════════════
|
# ════════════════════════════════════════════════
|
||||||
# ARIA — Release Script
|
# ARIA — Release Script
|
||||||
# Baut APK, taggt, erstellt Gitea Release
|
# 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.
|
# Gitea-Kennwort wird interaktiv abgefragt.
|
||||||
# ════════════════════════════════════════════════
|
# ════════════════════════════════════════════════
|
||||||
|
|
||||||
@@ -16,8 +17,30 @@ CYAN='\033[0;36m'
|
|||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
# ── Parameter ─────────────────────────────────
|
# ── 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"
|
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 ──────────────────────
|
# ── Gitea-Konfiguration ──────────────────────
|
||||||
# Aus .env lesen falls vorhanden (GITEA_URL, GITEA_REPO, GITEA_USER)
|
# Aus .env lesen falls vorhanden (GITEA_URL, GITEA_REPO, GITEA_USER)
|
||||||
|
|||||||
Reference in New Issue
Block a user