first commit
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# Lädt die gebaute APK in Gitas Paket-Registry.
|
||||
#
|
||||
# Der Weg über die Registry umgeht die Typenliste für Release-Anhänge, die
|
||||
# `.apk` nicht enthält. Siehe RELEASE.md.
|
||||
#
|
||||
# Android/upload-package.sh 1.0.0
|
||||
set -euo pipefail
|
||||
|
||||
VERSION="${1:?Aufruf: upload-package.sh <version>, z. B. 1.0.0}"
|
||||
SERVER="${GITEA_SERVER:-https://git.home.fritob.de}"
|
||||
OWNER="${GITEA_OWNER:-fritob}"
|
||||
TOKEN_FILE="${GITEA_TOKEN_FILE:-$HOME/.gitea-token}"
|
||||
|
||||
APK="$(dirname "$0")/app/build/outputs/apk/release/app-release.apk"
|
||||
[ -f "$APK" ] || {
|
||||
echo "Keine APK gefunden. Erst bauen:" >&2
|
||||
echo " source Android/env.sh && cd Android && ./gradlew :app:assembleRelease -PversionName=$VERSION" >&2
|
||||
exit 1
|
||||
}
|
||||
[ -f "$TOKEN_FILE" ] || {
|
||||
echo "Kein Zugangsschlüssel in $TOKEN_FILE." >&2
|
||||
echo "In Gitea unter Einstellungen -> Anwendungen einen mit 'write:package' anlegen," >&2
|
||||
echo "dann: printf %s 'DEIN_TOKEN' > $TOKEN_FILE && chmod 600 $TOKEN_FILE" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
NAME="CamperMonitor-$VERSION.apk"
|
||||
URL="$SERVER/api/packages/$OWNER/generic/camper-monitor/$VERSION/$NAME"
|
||||
|
||||
# Der Schlüssel geht nur an curl und steht nirgends in der Ausgabe.
|
||||
CODE="$(curl -s -o /dev/null -w '%{http_code}' \
|
||||
-H "Authorization: token $(cat "$TOKEN_FILE")" \
|
||||
--upload-file "$APK" "$URL")"
|
||||
|
||||
case "$CODE" in
|
||||
201) echo "Hochgeladen: $URL" ;;
|
||||
409) echo "Version $VERSION liegt dort schon. Erst löschen oder Version erhöhen." >&2; exit 1 ;;
|
||||
401|403) echo "Abgelehnt (HTTP $CODE) - fehlt dem Token das Recht 'write:package'?" >&2; exit 1 ;;
|
||||
*) echo "Fehlgeschlagen, HTTP $CODE" >&2; exit 1 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user