Saltar al contenido principal
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 establezcas restart: false en el workflow (consulta variaciones más abajo); cubre el reinicio.
Consulta Alcances para ver el catálogo completo si la aplicación también necesita otra automatización (variables de entorno, red) desde la misma clave.

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
Haz push a 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

Apunta path al directorio de la aplicación dentro del repositorio; solo se sube ese directorio, así que no tienes que empaquetar todo el repo:
Añade un archivo .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

Establece restart: 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í.
Última modificación el 26 de octubre de 2026