Pular para o conteúdo principal
A 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ê defina restart: false no workflow (veja variações abaixo); cobre o reinício.
Veja Escopos para o catálogo completo, caso a aplicação também precise de outras automações (variáveis de ambiente, rede) com a mesma chave.

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
Faça push na 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

Aponte path 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:
Adicione um arquivo .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

Defina restart: 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.
Última modificação em 26 de outubro de 2026