42 lines
1.6 KiB
Bash
Executable File
42 lines
1.6 KiB
Bash
Executable File
#!/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
|