Files
remmina-mac/scripts/publish-gitea-release.sh

36 lines
1.6 KiB
Bash
Executable File

#!/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"