Documentation Index
Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Deployment
El proceso de deployment de Vivla esta completamente automatizado mediante GitHub Actions con workflows reutilizables. El sistema detecta inteligentemente el tipo de deploy necesario y ejecuta el pipeline correspondiente.Workflows principales
Pipeline de Develop (develop.yml)
Trigger: push a la branch develop
Este pipeline implementa una deteccion inteligente del tipo de deploy:
-
Deteccion del tipo de deploy:
- Si el mensaje de commit contiene
[build]→ full build - Si hay cambios en
ios/,android/,app.config,package.json,eas.json→ full build - Solo cambios en archivos JS/TS → OTA update
- Si el mensaje de commit contiene
- Tests y lint siempre se ejecutan primero, independientemente del tipo de deploy
-
Path OTA: publica un update al canal
developviaeas update -
Path Full Build: builds secuenciales:
development(iOS + Android en paralelo)preview(iOS, luego Android)beta-prod(iOS, luego Android)
- Notificacion a Slack al finalizar
La deteccion inteligente optimiza los tiempos de CI. Si solo cambiaste codigo TypeScript, el
deploy se resuelve en minutos con un OTA update en lugar de generar builds completos.
Pipeline de Production (main.yml)
Trigger: push a la branch main
- Tests y lint
- Build production iOS y Android en paralelo
- Notificacion a Slack
Pipeline de PR (pr.yml)
Trigger: PR a main o develop
- Solo tests y lint (no genera builds)
- Notificacion a Slack con estado del PR
Workflows reutilizables
Los workflows reutilizables tienen el prefijo_ y encapsulan la logica comun de cada tipo de build:
| Workflow | Descripcion |
|---|---|
_test.yml | Lint, format check y tests |
_build-development.yml | Build de desarrollo |
_build-preview.yml | Build preview + submit a stores |
_build-beta-prod.yml | Build beta-prod + submit iOS |
_build-production.yml | Build produccion + submit a stores |
OTA Updates
El proyecto usa expo-updates para distribuir actualizaciones over-the-air sin necesidad de generar nuevos binarios.Canales de actualizacion
| Canal | Descripcion |
|---|---|
development | Desarrollo local |
develop | Entorno de desarrollo compartido |
beta-prod | QA con API de produccion |
production | Usuarios finales |
Configuracion
- Check automatico:
ON_LOAD— la app busca actualizaciones al iniciar - Runtime version: igual a la version de la app (semver)
Scripts de OTA update
Store submission
- iOS
- Android
- Los builds se envian a TestFlight via EAS Submit - Desde TestFlight se promociona a la App Store manualmente - Las credenciales de firma se gestionan remotamente por EAS
Flujo completo de release
El siguiente flujo describe el camino tipico de un cambio desde desarrollo hasta produccion:- El desarrollador crea un PR contra
develop→ se ejecutan tests y lint - Al mergear a
develop→ se detecta el tipo de deploy y se ejecuta el pipeline correspondiente - QA valida en los builds de
previewybeta-prod - Se crea un PR de
developamain→ tests y lint - Al mergear a
main→ build de produccion + submit a stores - Notificacion a Slack en cada paso del proceso