diff --git a/.gitea/workflows/apk.yml b/.gitea/workflows/apk.yml index 19e7429..bfe5053 100644 --- a/.gitea/workflows/apk.yml +++ b/.gitea/workflows/apk.yml @@ -1,4 +1,8 @@ -# Construye la APK y la deja publicada como borrador en las releases. +# 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. @@ -29,6 +33,13 @@ jobs: 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 @@ -46,8 +57,12 @@ jobs: OASIS_GITEA_REPO: ${{ github.repository }} run: | cd android - ./scripts/release.sh --release --publish + 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 + run: rm -f /tmp/oasis.jks /tmp/oasis-base.apk diff --git a/.gitignore b/.gitignore index c2658d7..1fafaa8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ node_modules/ + +# pruebas en local: el node_modules suele ser un enlace y el estado de la llamada lo escribe el movil +src/server/node_modules +.phone_state.json +android/.tools/ diff --git a/GUIA_DE_DESARROLLO.md b/GUIA_DE_DESARROLLO.md new file mode 100644 index 0000000..f9bb560 --- /dev/null +++ b/GUIA_DE_DESARROLLO.md @@ -0,0 +1,228 @@ +# Guía de desarrollo + +Notas para quien vaya a meter mano en la rama del móvil. Leedlas antes de empezar, +que nos ahorramos disgustos. + +Esta rama va encima de Oasis, que es de epsylon. Él saca versión casi cada día +(39 entre la 1.0.1 y la 1.3.3, en siete semanas) y cada versión llega en un solo +commit. Si metemos cosas en sus ficheros, en cada integración hay que volver a +pelearse con ellas. Por eso la idea es sencilla: lo de Oasis lo cambia él; nosotros +cambiamos cómo se ve y se usa en el móvil, y lo hacemos en ficheros nuestros. + +Los números y de dónde salen están en `docs/FRONTERA_UPSTREAM.md`. + + +## Lo que no se toca + +- `src/backend/backend.js`. Cambia en 34 de cada 39 versiones. Ni rutas nuevas, ni + middleware, ni envolver funciones suyas como `checkMod`. +- La cadena de middleware del final de `backend.js`. Crece en cada versión. +- Los modelos de `src/models/`, salvo el nuestro (`fork_workflows.js`). Ahí se decide qué se publica en la red y cómo se cuenta. + Si lo cambiamos, nuestro móvil cuenta distinto que el escritorio de al lado. Un + ejemplo real: quien crea una votación no puede votar en ella. No nos gusta, pero + es una regla del modelo, así que se explica en pantalla y punto. +- `src/server/` (arranque de SSB, `ssb_config.js`, `package.json`). +- `src/backend/request_guards.js`, que lleva la CSP. Nada de `style=""` ni de + `