From 10b4ff1ecd29c7ae79520b39def188c6c503776d Mon Sep 17 00:00:00 2001 From: SITO Date: Wed, 19 Aug 2026 11:17:04 +0200 Subject: [PATCH] wiki: como se publica una version Compilar recoge release.sh y el workflow de gitea: que verifica y por que, de donde salen las versiones, y por que la release sale como borrador. --- Compilar.md | 42 ++++++++++++++++++++++++++++++++++++++++++ Roadmap.md | 4 ++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/Compilar.md b/Compilar.md index 223586f..ebdb122 100644 --- a/Compilar.md +++ b/Compilar.md @@ -48,6 +48,48 @@ dependencias son idénticas entre versiones. Si algún día lo rellenas con un `npm install` normal, la APK se llevará binarios de Linux de escritorio que en Android no sirven, y pesará diez veces más. +## Publicar una versión + +`scripts/release.sh` hace el ciclo entero y **siempre igual**, se lance a mano o +desde un runner: + +```sh +export JAVA_HOME=/opt/android-studio/jbr # un JDK con javac +export ANDROID_HOME=$HOME/Android/Sdk +export OASIS_APK_BASE=../oasis-v0.8.7.apk # solo la primera vez + +cd android +./scripts/release.sh # compila y verifica, sin publicar +./scripts/release.sh --release # firmada +./scripts/release.sh --release --publish # y la sube a las releases +``` + +Verifica cuatro cosas antes de dar nada por bueno, y son las que han cazado fallos +reales en esta rama: + +| Comprueba | Por qué | +|---|---| +| Que la APK lleva `nodejs-project.zip` | Una APK sin backend compila, instala y arranca igual | +| Que lleva `libnode.so` | Sin él no hay Node que ejecutar | +| Que declara CAMERA y RECORD_AUDIO | Si se pierden, adiós videollamadas, y no se nota hasta pulsar Llamar | +| Que la firma es válida | Y enseña la huella para publicarla | + +Las versiones no se editan a mano: el **versionCode** sale del número de commits (sube +solo, y Android exige que suba) y el **versionName** de `package.json`, que es de donde +lo saca también el backend —así la versión que muestra la aplicación no puede +discrepar de la de la APK—. + +La release se crea **como borrador**. Publicar una APK firmada sin que nadie la mire no +debería poder pasar por descuido. + +### Desde gitea + +`.gitea/workflows/apk.yml` hace lo mismo desde un runner. **No se dispara con cada +commit** —la APK son más de 100 MB— sino a mano o al crear un tag `v*`. + +El runner necesita JDK 17 con compilador, el SDK de Android, node, zip y unzip. Uno +pelado no vale. Los secretos que hay que dar de alta están en la cabecera del fichero. + ## Firmar La contraseña **nunca** en el repositorio ni en `gradle.properties`: diff --git a/Roadmap.md b/Roadmap.md index 76303af..3b25bab 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -22,6 +22,8 @@ Sin fechas: esto se hace cuando se puede. - **Selector de ficheros** del navegador interno, que faltaba en el envoltorio propio. - **[Varias identidades](Identidades)** en el mismo móvil, con selector en los ajustes y aviso cuando dos comparten clave. +- **[Construcción automatizada](Compilar)**: un script hace el ciclo entero + —empaquetar, compilar, verificar y publicar— y un workflow de gitea lo lanza. ## En curso @@ -31,8 +33,6 @@ Sin fechas: esto se hace cuando se puede. ## Sin empezar -- **Automatizar la construcción**: que una versión nueva del proyecto oficial genere - la APK firmada y publicada sola. - **Limpiar los metadatos EXIF** en el móvil (ver [Limitaciones](Limitaciones)). ## Bloqueado, y por qué