# Construye la APK y la publica en las releases. # # Con un tag v* se publica directamente: crear el tag ya es la decision de sacar # version, y es la que enlaza el README (releases/latest). Lanzada a mano desde # la interfaz se queda en borrador, para revisarla antes. # # 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: Traer el APK oficial de la misma version (node_modules y libnode.so) run: | v=$(node -p "require('./src/server/package.json').version") curl -sfL -o /tmp/oasis-base.apk \ "https://github.com/epsylon/oasis/releases/download/oasis-android-v$v/oasis-v$v.apk" echo "OASIS_APK_BASE=/tmp/oasis-base.apk" >> "$GITHUB_ENV" - 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 if [ "${{ github.ref_type }}" = "tag" ]; then ./scripts/release.sh --release --publish --public else ./scripts/release.sh --release --publish fi - name: Borrar el almacen de claves if: always() run: rm -f /tmp/oasis.jks /tmp/oasis-base.apk