# Construye la APK y la deja publicada como borrador en las releases.
#
# NO se dispara sola con cada commit: la APK son mas de 100 MB y el backend tarda
# en empaquetarse. Se lanza a mano desde la interfaz de gitea, o al crear un tag.
#
# El runner necesita: JDK 17 con compilador, el SDK de Android (plataforma 35 y
# build-tools), node, zip y unzip. Un runner pelado NO vale.
#
# Secretos que hay que dar de alta en el repositorio:
#   OASIS_KEYSTORE_B64    el almacen de claves en base64
#   OASIS_KEYSTORE_PASS   su contraseña
#   OASIS_KEY_ALIAS       el alias (por defecto "oasis")
#
# El token para publicar lo pone gitea solo en GITEA_TOKEN.

name: APK

on:
  workflow_dispatch:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0          # release.sh cuenta commits para el versionCode

      - name: Restaurar el almacen de claves
        run: |
          echo "${{ secrets.OASIS_KEYSTORE_B64 }}" | base64 -d > /tmp/oasis.jks
          chmod 600 /tmp/oasis.jks

      - name: Construir, verificar y publicar
        env:
          JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64
          ANDROID_HOME: /opt/android-sdk
          OASIS_KEYSTORE: /tmp/oasis.jks
          OASIS_KEYSTORE_PASS: ${{ secrets.OASIS_KEYSTORE_PASS }}
          OASIS_KEY_ALIAS: ${{ secrets.OASIS_KEY_ALIAS }}
          OASIS_GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
          OASIS_GITEA_URL: ${{ github.server_url }}
          OASIS_GITEA_REPO: ${{ github.repository }}
        run: |
          cd android
          ./scripts/release.sh --release --publish

      - name: Borrar el almacen de claves
        if: always()
        run: rm -f /tmp/oasis.jks
