#!/bin/bash # Lädt ZIP + SHA256 als Gitea-Release hoch. # Env: GITEA_HOST, GITEA_OWNER, GITEA_REPO, GITEA_TOKEN, VERSION set -euo pipefail : "${GITEA_HOST:?GITEA_HOST fehlt, z.B. https://git.sysdaemon.xyz}" : "${GITEA_OWNER:?GITEA_OWNER fehlt}" : "${GITEA_REPO:?GITEA_REPO fehlt}" : "${GITEA_TOKEN:?GITEA_TOKEN fehlt (User -> Settings -> Applications -> Token)}" VERSION="${VERSION:-0.1.0}" TAG="v$VERSION" DIST="$(cd "$(dirname "$0")/../dist" && pwd)" ZIP="$DIST/RemminaMac-$VERSION-macos-arm64.zip" SHA="$ZIP.sha256" [ -f "$ZIP" ] || { echo "Fehlt: $ZIP (erst ./scripts/build-release.sh $VERSION)"; exit 1; } API="$GITEA_HOST/api/v1/repos/$GITEA_OWNER/$GITEA_REPO" echo "[publish] Erstelle Release $TAG ..." RESP=$(curl -sf -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \ -d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"body\":\"RemminaMac $TAG — siehe README/docs\",\"draft\":false,\"prerelease\":false}" \ "$API/releases" || true) ID=$(echo "$RESP" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null || echo "") if [ -z "$ID" ]; then echo "[publish] Release existiert evtl. schon, hole ID..." ID=$(curl -sf -H "Authorization: token $GITEA_TOKEN" "$API/releases/tags/$TAG" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))") fi echo "[publish] Release-ID: $ID" for f in "$ZIP" "$SHA"; do echo "[publish] Lade hoch: $(basename "$f")" curl -sf -H "Authorization: token $GITEA_TOKEN" -F "attachment=@$f" "$API/releases/$ID/assets?name=$(basename "$f")" > /dev/null done echo "[publish] Fertig: $API/releases/$ID"