Select the types of activity you want to include in your feed.
chore: switch Prowl-Site rebuild to Netlify Build Hook
- Load .env for release secrets, add .env.example as template - Replace gh api repository_dispatch with Netlify Build Hook curl - Update docs: appcast URL now points to GitHub Releases
···11+# Prowl release environment variables
22+# Copy to .env and fill in values. .env is gitignored.
33+44+# Apple code signing (auto-detected if unset)
55+# APPLE_SIGNING_IDENTITY=Developer ID Application: Your Name (TEAM_ID)
66+# APPLE_TEAM_ID=TEAM_ID
77+# APPLE_NOTARY_KEYCHAIN_PROFILE=supacode-notary
88+99+# Sparkle EdDSA private key (default: ~/.prowl-sparkle-private-key)
1010+# SPARKLE_PRIVATE_KEY_FILE=~/.prowl-sparkle-private-key
1111+1212+# Netlify Build Hook for Prowl-Site rebuild after release
1313+NETLIFY_BUILD_HOOK=
+3-5
doc-onevcat/fork-sync-and-release.md
···12121313### Sparkle Auto-Update
14141515-- Feed URL: `https://prowl.onev.cat/appcast.xml` (hosted via Prowl-Site on Netlify)
1515+- Feed URL: `https://github.com/onevcat/Prowl/releases/latest/download/appcast.xml` (hosted as a GitHub Release asset)
1616- EdDSA public key configured in `supacode/Info.plist` as `SUPublicEDKey`
1717- Private key stored in macOS Keychain and exported to `~/.prowl-sparkle-private-key`
1818-- Appcast generated by `bins/generate_appcast` during release
1818+- Appcast generated by `bins/generate_appcast` during release and uploaded to the GitHub Release
19192020### Release Artifacts
2121···77774. DMG creation with signing
78785. Notarization + stapling
79796. Sparkle appcast generation
8080-7. GitHub Release with all artifacts
8181-8. Prowl-Site appcast update (triggers Netlify deploy)
8080+7. GitHub Release with all artifacts (including `appcast.xml`)
82818382### Local Test Build (Release config, no publish)
8483···9695| `APPLE_TEAM_ID` | from identity | Apple Team ID |
9796| `APPLE_NOTARY_KEYCHAIN_PROFILE` | `supacode-notary` | Keychain profile for notarytool |
9897| `SPARKLE_PRIVATE_KEY_FILE` | `~/.prowl-sparkle-private-key` | EdDSA private key for appcast |
9999-| `PROWL_SITE_DIR` | `../Prowl-Site` | Path to Prowl-Site repo |
1009810199## Notarization Credentials
102100
+15-5
doc-onevcat/scripts/release.sh
···1212# APPLE_TEAM_ID Apple Team ID (inferred from identity if unset)
1313# APPLE_NOTARY_KEYCHAIN_PROFILE Keychain profile for notarytool (default: supacode-notary)
1414# SPARKLE_PRIVATE_KEY_FILE Path to EdDSA private key file (default: ~/.prowl-sparkle-private-key)
1515+# NETLIFY_BUILD_HOOK Netlify Build Hook URL for Prowl-Site rebuild
1516set -euo pipefail
16171718SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
1819PROJECT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
1920cd "$PROJECT_DIR"
2121+2222+# Load .env if present (not committed to repo)
2323+if [[ -f "$PROJECT_DIR/.env" ]]; then
2424+ set -a
2525+ source "$PROJECT_DIR/.env"
2626+ set +a
2727+fi
20282129# ── Helpers ──────────────────────────────────────────────────────────────────
2230···330338# ── Trigger Prowl-Site rebuild ───────────────────────────────────────────────
331339332340log "triggering Prowl-Site rebuild..."
333333-gh api repos/onevcat/Prowl-Site/dispatches \
334334- -f event_type=changelog-updated \
335335- -f "client_payload[version]=$VERSION" 2>/dev/null \
336336- && log "Prowl-Site rebuild triggered" \
337337- || log "Prowl-Site dispatch failed (non-critical)"
341341+if [[ -n "${NETLIFY_BUILD_HOOK:-}" ]]; then
342342+ curl -fsSL -X POST "$NETLIFY_BUILD_HOOK" 2>/dev/null \
343343+ && log "Prowl-Site rebuild triggered" \
344344+ || log "Prowl-Site rebuild trigger failed (non-critical)"
345345+else
346346+ log "NETLIFY_BUILD_HOOK not set, skipping Prowl-Site rebuild"
347347+fi
338348339349echo
340350log "done! Release: $RELEASE_URL"