vertracloud/github-action es la GitHub
Action oficial que sube tu repositorio a una aplicación existente de Vertra Cloud y la reinicia. Envuelve el
mismo binario de la CLI que se usa en local (vertra deploy), fijado a una release y verificado
con SHA-256, y funciona en runners de Linux y macOS (x64 y ARM64).
La Action actualiza una aplicación existente — no crea ninguna. Crea primero la aplicación,
ya sea en el panel o con
POST /v1/apps, y después apunta el workflow a su ID.Requisitos previos
- Una aplicación de Vertra Cloud ya creada (cualquier plan).
- El ID de la aplicación, que aparece en el panel o mediante
GET /v1/apps/:id. - Un repositorio de GitHub en el que puedas añadir secretos y workflows.
1. Crea una clave de API con los alcances mínimos
Desplegar sube archivos y, por defecto, reinicia la aplicación después. En Panel → Configuraciones → Claves de API, crea una clave con:apps:files— obligatorio, cubre la subida de archivos.apps:write— obligatorio salvo que establezcasrestart: falseen el workflow (consulta variaciones más abajo); cubre el reinicio.
2. Guarda la clave y el ID de la app como secretos
En el repositorio, ve a Settings → Secrets and variables → Actions y añade:
No escribas nunca la clave directamente en el archivo del workflow — la Action también la enmascara en los logs, pero la
fuente de verdad debería ser siempre un secreto.
3. Añade el workflow
Guarda esto como.github/workflows/deploy.yml:
.github/workflows/deploy.yml
main y sigue la ejecución en la pestaña Actions del repositorio. Los archivos se fusionan: la
subida sobrescribe las rutas que coinciden, pero los archivos que solo existen en la aplicación (no en el
repositorio) se dejan tal cual — desplegar no los elimina.
Entradas
La Action no tiene salidas: el paso termina bien cuando el despliegue termina bien y falla en caso contrario.
Variaciones
Actualizar una app existente solo con un push a main
Este es el comportamiento por defecto del workflow anterior — on.push.branches: [main] es lo que limita
las ejecuciones a esa rama. Los push a cualquier otra rama no lanzan el job, ya que GitHub Actions solo
ejecuta los jobs que coinciden con el filtro del evento.
Monorepo — desplegar una subcarpeta
Apuntapath al directorio de la aplicación dentro del repositorio; solo se sube ese directorio,
así que no tienes que empaquetar todo el repo:
.vertraignore dentro de ese directorio para patrones de exclusión adicionales — node_modules,
.git, .github, .vscode, .venv, venv, vendor, target, .next y __pycache__ ya se
ignoran por defecto.
Subir sin reiniciar
Establecerestart: false para sincronizar solo los archivos — útil cuando quieres lanzar el reinicio por separado
(por ejemplo, desde otro paso o de forma programada). Con esto establecido, la clave de API solo necesita el
alcance apps:files:
Desplegar después de tus tests
Añade el paso de despliegue al final de un job existente, después de tus pasos de test/build, para que los archivos solo se envíen cuando todo lo anterior haya pasado:Alternativa: el webhook de despliegue
En lugar de ejecutar la CLI desde un workflow, puedes activar el despliegue automático desde GitHub directamente en la aplicación: Vertra Cloud registra un webhook en el propio repositorio y redespliega en cada push a la rama que elijas (main/master por defecto), sin necesidad de archivo de workflow ni de secreto. Usa la Action cuando quieras que
el despliegue se ejecute solo después de que pase la CI, necesites desplegar una subcarpeta o quieras que la subida se salte
el reinicio.
Solución de problemas
Consulta el catálogo de códigos de error completo para cualquier cosa que no figure aquí.