36 lines
1.6 KiB
Bash
Executable File
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"
|