Tu cliente quiere un solo botón en Lovable para enviar cambios a todos los usuarios activos. Ya comprobaste que el flujo de actualización funciona manualmente:
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
Lo que falta no es otro comando de terminal dentro de Lovable. Lovable no puede ejecutar Capgo al publicar. Cuando la sincronización de GitHub está activada, Publish envía un commit a tu repo. GitHub Actions ejecuta el build y bundle upload lo hace por ti.
Esta guía cubre la única configuración manual que el cliente debe hacer una vez: añadir CAPGO_TOKEN como un secreto de GitHub. Para el archivo del workflow, copia y pega la instrucción de IA en Lovable (Paso 3).
Cómo funciona el pipeline
| Paso | Quién | Qué sucede |
|---|---|---|
| 1 | Cliente | Edita la app en Lovable y hace clic en Publish |
| 2 | Lovable | Commits y pushes a GitHub (normalmente main) |
| 3 | Acciones de GitHub | npm ci, npm run build, bundle upload --auto-bump a Capgo |
| 4 | Capgo | Dispositivos activos en el production canal reciben la actualización |
Sin SSH, sin CLI local y sin clics extra tras configurar el secret.
Requisitos previos
- Proyecto de Lovable conectado a GitHub (guía de exportación)
- Capacitor +
@capgo/capacitor-updateren el repo (Guía de Lovable a móvil) - App registrada en Capgo con
capacitor.config.tsapuntando al correctoappId productionchannel correcto, existe y está vinculado a los builds que usan tus usuarios
Por qué --auto-bump
Cada upload de Capgo requiere una nueva versión de bundle única. Lovable Publish no incrementa el package.json por ti, así que el CI fallaría en el segundo deploy si reutilizas la misma versión.
--auto-bump lee la última versión del channel (o app) y la incrementa. El nivel por defecto es minor. Puedes pasar --auto-bump patch o --auto-bump major si lo prefieres.
Paso 1 — Crea una clave Capgo API
- Abrir console.capgo.app/apikeys/
- Crea una clave API con permiso para subir bundles de tu app
- Copia la clave una sola vez. No volverás a ver el valor completo
Trata esta clave como una contraseña. Nunca la subas a Git ni la pegues en el chat de Lovable.
Paso 2 — Añadir CAPGO_TOKEN en GitHub (el único paso de env)
Este es el paso que le envías a Kuldeep o a cualquier cliente que sea dueño del repo.
- Abre el repositorio de GitHub que Lovable sincroniza
- Ir a Configuración → Secrets y variables → Actions
- Haz clic en Nuevo secreto del repositorio
- Nombre:
CAPGO_TOKEN - Valor: pega la clave Capgo API del Paso 1
- Guardar
GitHub inyecta el secret en los workflows como ${{ secrets.CAPGO_TOKEN }}. El siguiente workflow lo lee como la CAPGO_TOKEN variable de entorno para Capgo CLI.
Si el repo pertenece a la organización de tu cliente, deberán añadir el secret en su repo. Solo necesitas la clave de GitHub, no la de Lovable.
Paso 3 — Pega este prompt en Lovable
Copia el siguiente bloque en el chat de Lovable. Si tu rama por defecto no es main, reemplaza main en el workflow con el nombre de tu rama.
Add Capgo Live Updates CI with GitHub Actions.
Create `.github/workflows/capgo-live-updates.yml` (create folders if needed). Start from this YAML, then adapt install/build to this project while keeping Capgo upload + CAPGO_TOKEN secret behavior:
name: Capgo Live Updates
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install and build
run: |
npm ci
npm run build
- name: Upload bundle to Capgo
run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
Rules:
- Do not hardcode any Capgo API key in the repo or in chat.
- The workflow must read CAPGO_TOKEN only from GitHub Actions secrets (`${{ secrets.CAPGO_TOKEN }}`).
- Keep `--auto-bump` on the upload command so each Publish gets a new unique bundle version.
- Prefer the project's real production build script from package.json (for example `npm run build` or `vite build`).
- If package-lock.json is missing, use `npm install` instead of `npm ci`.
- Do not modify app UI or Capacitor config for this task.
- Commit the workflow file so the next Publish pushes it to GitHub.
Una vez que Lovable aplique el cambio, haz clic en Publish para que el workflow se despliegue en GitHub.
Alternativa manual
Si prefieres no usar el chat de Lovable, crea .github/workflows/capgo-live-updates.yml solo con este YAML (no con el prompt). Adapta los pasos de install/build según las reglas anteriores si tu proyecto es distinto, luego haz commit y push.
name: Capgo Live Updates
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
- name: Install and build
run: |
npm ci
npm run build
- name: Upload bundle to Capgo
run: npx @capgo/cli@latest bundle upload --channel=production --auto-bump
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
Vite base path: Las apps de Lovable con Vite suelen necesitar base: './' en vite.config.ts así los assets se cargan dentro del shell nativo. Si los usuarios ven una pantalla blanca tras una Live Update, pide a Lovable que configure base: './', publica de nuevo y deja que el workflow haga el redeploy.
Bundles cifrados: Si usas cifrado Capgo, añade CAPGO_PRIVATE_KEY como un segundo secreto GitHub y pasa --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" en el paso de upload.
Paso 4 — Confirm Publish activa un deploy
- En Lovable, haz un pequeño cambio visible (por ejemplo, el texto de un botón)
- Haz clic en Publish
- En GitHub, abre Actions y observa Capgo Live Updates
- Cuando el job esté en verde, abre tu consola de Capgo y confirma un nuevo bundle en el
productioncanal - En un dispositivo con la app instalada, confirma que llegue el cambio (puede tardar un minuto según la configuración del canal)
✅ Éxito: Publicar en Lovable → Action GitHub en verde → nuevo bundle en Capgo → los usuarios reciben la actualización.
Solución de problemas
| Síntoma | Causa probable | Solución |
|---|---|---|
| El workflow nunca se ejecuta | El push fue a una rama distinta de main |
Cambio branches en el workflow o publicar en main |
CAPGO_TOKEN / error de auth |
Secret ausente o nombre incorrecto | El secret debe ser exactamente CAPGO_TOKEN en Actions secrets |
| La versión ya existe | El upload reutilizó la misma versión de bundle | Mantener --auto-bump en el paso de upload (o pasar --auto-bump patch) |
El build falló en npm ci |
Lockfile desincronizado | Ejecutar npm install localmente, hacer commit package-lock.json, publicar de nuevo |
| La subida fue exitosa, pero la pantalla está en blanco | Incorrecto webDir o Vite base |
Coincidir capacitor.config.ts webDir con el build de salida (dist para Vite) y configurar base: './' |
| Los usuarios no ven la actualización | El Channel no está vinculado a su build | En Capgo, vincula el build del dispositivo a production o configura el channel como público |
Para más patrones de workflow (feature branches, PR channels, encryption), consulta Integración de GitHub Actions.
Lo que le dices a tu cliente
Envíale esta lista de verificación:
- Tú ya conectaste Lovable con GitHub y configuraste Capgo en la app móvil.
- Ellos añaden un secreto de GitHub:
CAPGO_TOKENcon su clave API de Capgo (página apikeys). - Ellos hacen clic Publicar en Lovable siempre que quieran que los usuarios reciban cambios.
- Nunca ejecutan
npx @capgo/clilocalmente a menos que quieran.
Eso encaja con la experiencia de un solo clic que buscaban: el botón es Publish in Lovable; GitHub Actions y Capgo se encargan del resto.
Continuar
- Convierte Lovable a iOS y Android — Configuración completa de Capacitor + Capgo si aún no has envuelto la app
- Build y release automáticos con GitHub Actions — Releases basados en tags y saltos de versión
- Integración con GitHub Actions — Canales multi-channel y de preview de PR
- Capgo Live Updates — Canales, rollbacks y estadísticas de adopción