vertracloud/github-action é a GitHub
Action oficial que envia o seu repositório para uma aplicação existente da Vertra Cloud e a
reinicia. Ela encapsula o mesmo binário da CLI usado localmente (vertra deploy), fixado em uma release e verificado
por SHA-256, e roda em runners Linux e macOS (x64 e ARM64).
A Action atualiza uma aplicação existente — ela não cria uma. Crie a aplicação
primeiro, pelo dashboard ou com
POST /v1/apps, e depois aponte o workflow para o ID dela.Pré-requisitos
- Uma aplicação da Vertra Cloud já criada (qualquer plano).
- O ID da aplicação, mostrado no dashboard ou via
GET /v1/apps/:id. - Um repositório do GitHub onde você possa adicionar secrets e workflows.
1. Crie uma chave de API com os escopos mínimos
O deploy envia arquivos e, por padrão, reinicia a aplicação em seguida. Em Dashboard → Configurações → Chaves de API, crie uma chave com:apps:files— obrigatório, cobre o upload dos arquivos.apps:write— obrigatório, a menos que você definarestart: falseno workflow (veja variações abaixo); cobre o reinício.
2. Salve a chave e o ID da aplicação como secrets
No repositório, vá em Settings → Secrets and variables → Actions e adicione:
Nunca escreva a chave diretamente no arquivo do workflow — a Action também a mascara nos logs, mas a
fonte da verdade deve ser sempre um secret.
3. Adicione o workflow
Salve isto como.github/workflows/deploy.yml:
.github/workflows/deploy.yml
main e acompanhe a execução na aba Actions do repositório. Os arquivos são mesclados: o
upload sobrescreve os caminhos correspondentes, mas os arquivos que existem apenas na aplicação (e não no
repositório) são mantidos — o deploy não os apaga.
Inputs
A Action não tem outputs: a etapa é bem-sucedida quando o deploy é bem-sucedido e falha caso contrário.
Variações
Atualizar uma aplicação existente apenas em push na main
Este é o comportamento padrão do workflow acima — on.push.branches: [main] é o que limita
as execuções a essa branch. Pushes em qualquer outra branch não disparam o job, já que o GitHub Actions só
executa jobs que correspondem ao filtro do evento.
Monorepo — fazer deploy de uma subpasta
Apontepath para o diretório da aplicação dentro do repositório; apenas esse diretório é
enviado, então você não precisa empacotar o repositório inteiro:
.vertraignore dentro desse diretório para padrões de exclusão extras — node_modules,
.git, .github, .vscode, .venv, venv, vendor, target, .next e __pycache__ já são
ignorados por padrão.
Enviar sem reiniciar
Definarestart: false para apenas sincronizar os arquivos — útil quando você quer disparar o reinício separadamente
(por exemplo, a partir de outra etapa ou em um agendamento). Com isso definido, a chave de API só precisa do
escopo apps:files:
Fazer deploy depois dos seus testes
Adicione a etapa de deploy no final de um job existente, depois das etapas de teste/build, para que os arquivos só sejam enviados quando tudo o que vem antes tiver passado:Alternativa: o webhook de deploy
Em vez de executar a CLI em um workflow, você pode ativar o deploy automático pelo GitHub diretamente na aplicação: a Vertra Cloud registra um webhook no próprio repositório e faz o redeploy a cada push na branch que você escolher (main/master por padrão), sem precisar de arquivo de workflow nem de secret. Use a Action quando você quiser que
o deploy rode apenas depois de o CI passar, precisar fazer deploy de uma subpasta ou quiser que o upload não
reinicie a aplicação.
Solução de problemas
Veja o catálogo completo de códigos de erro para qualquer caso não listado aqui.