diff --git a/.github/workflows/zapstore.yml b/.github/workflows/zapstore.yml deleted file mode 100644 index 0e351b7..0000000 --- a/.github/workflows/zapstore.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Build & Publish to Zapstore - -on: - push: - tags: - - 'v*.*.*' # e.g. v1.2.3 - - # Allow manual trigger from Actions tab - workflow_dispatch: - -permissions: - contents: write # needed to create GitHub releases - -jobs: - build-and-publish: - runs-on: ubuntu-latest - - steps: - # ── 1. Checkout ──────────────────────────────────────────── - - name: Checkout repository - uses: actions/checkout@v4 - - # ── 2. Node / web build ──────────────────────────────────── - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '22' - cache: npm - - - name: Install dependencies and build web app - run: | - npm install - npm run build - - # ── 3. Java / Android toolchain ─────────────────────────── - - name: Setup Java 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - # ── 4. Capacitor sync ───────────────────────────────────── - - name: Install Capacitor CLI and sync Android - run: | - npx cap sync android - - # ── 5. Sign the APK ─────────────────────────────────────── - # Secrets required in GitHub repo settings: - # KEYSTORE_BASE64 – base64-encoded .jks keystore file - # KEYSTORE_PASSWORD – keystore password - # KEY_ALIAS – key alias inside the keystore - # KEY_PASSWORD – key password - - name: Decode keystore - run: | - echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/release.jks - - - name: Build signed release APK - working-directory: android - env: - KEYSTORE_PATH: app/release.jks - KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} - KEY_ALIAS: ${{ secrets.KEY_ALIAS }} - KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - run: | - ./gradlew assembleRelease \ - -Pandroid.injected.signing.store.file=$KEYSTORE_PATH \ - -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \ - -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ - -Pandroid.injected.signing.key.password=$KEY_PASSWORD - - # ── 6. Locate APK ───────────────────────────────────────── - - name: Locate APK - id: apk - run: | - APK=$(find android/app/build/outputs/apk/release -name "*.apk" | head -1) - echo "path=$APK" >> $GITHUB_OUTPUT - echo "Found APK: $APK" - - # ── 7. Create GitHub Release with APK ───────────────────── - - name: Create GitHub Release - uses: softprops/action-gh-release@v2 - with: - files: ${{ steps.apk.outputs.path }} - generate_release_notes: true - - # ── 8. Install zsp ──────────────────────────────────────── - - name: Install zsp - run: | - curl -sSL https://github.com/zapstore/zsp/releases/latest/download/zsp_linux_amd64 \ - -o /usr/local/bin/zsp - chmod +x /usr/local/bin/zsp - zsp --version - - # ── 9. Publish to Zapstore ──────────────────────────────── - # Secrets required: - # SIGN_WITH – nsec or bunker:// URL for Nostr signing - - name: Publish to Zapstore - env: - SIGN_WITH: ${{ secrets.SIGN_WITH }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - RELAY_URLS: wss://relay.zapstore.dev - run: | - zsp publish -y zapstore.yaml diff --git a/zapstore.yaml b/zapstore.yaml index 89593a3..3ad39c0 100644 --- a/zapstore.yaml +++ b/zapstore.yaml @@ -1,15 +1,31 @@ # Zapstore publish config for SkateSpots # https://zapstore.dev # -# Publish with: zsp publish zapstore.yaml -# Or via CI: see .github/workflows/zapstore.yml +# HOW TO PUBLISH +# ────────────── +# 1. Build the APK locally: +# npm run android:build +# +# 2. Publish to Zapstore: +# SIGN_WITH=nsec1... zsp publish zapstore.yaml +# +# Or with browser extension (NIP-07): +# SIGN_WITH=browser zsp publish zapstore.yaml +# +# zsp will: +# - Parse the APK (version, cert, permissions, icon) +# - Upload APK + icon to cdn.zapstore.dev (Blossom) +# - Sign and publish events to relay.zapstore.dev # ═══════════════════════════════════════════════════════════════════ # SOURCE CONFIGURATION # ═══════════════════════════════════════════════════════════════════ -# Source code repository — zsp fetches APK from GitHub releases automatically -repository: https://github.com/SkateSpots/SkateSpots +# NIP-34 naddr for the Nostr git repository (shown in Zapstore listing) +repository: naddr1qvzqqqrhnypzqg88e9f588nx7wyz4wt0ura23w3yd4hmztqrkr95utwyvgachjepqyd8wumn8ghj7emfwsh8x6rpddjhxur9v9ex2tnyd9uj7qq22d4kzar92dcx7arnhyhdwn + +# Local APK built by: npm run android:build +release_source: ./android/app/build/outputs/apk/release/app-release.apk # ═══════════════════════════════════════════════════════════════════ # APP METADATA @@ -38,7 +54,7 @@ description: | website: https://skate-spots.org license: custom -# Category tags (used for Zapstore discovery) +# Tags for Zapstore discovery tags: - sports - social @@ -46,7 +62,7 @@ tags: - bitcoin - maps -# Nostr NIPs supported +# Nostr NIPs supported by this app supported_nips: - "01" - "07" @@ -60,7 +76,6 @@ supported_nips: # METADATA SOURCES # ═══════════════════════════════════════════════════════════════════ -# Pull description, icon, screenshots from Play Store + GitHub +# Pull icon + screenshots from Play Store (no GitHub needed) metadata_sources: - playstore - - github