Files

3.4 KiB

CI/CD - Avanzato Tecnologia

Estrutura do Pipeline

Push para main/master
       |
       v
+------------------+     +------------------+     +------------------+
|    BUILD         | --> | PRESERVAR ASSETS | --> |  DEPLOY          |
|                  |     |                  |     |                  |
| - Checkout       |     | - Logo           |     | - SCP para VPS   |
| - npm install    |     | - Imagens        |     | - Limpar cache   |
| - npm run build  |     | - Favicon        |     | - Notificar      |
+------------------+     +------------------+     +------------------+

Configurar Secrets no GitHub

Va em: Settings > Secrets and variables > Actions > New repository secret

Secret Descricao Exemplo
SSH_HOST IP ou dominio do servidor 201.45.120.30 ou avanzato.com.br
SSH_USER Usuario SSH root ou deploy
SSH_PRIVATE_KEY Chave SSH privada -----BEGIN OPENSSH PRIVATE KEY-----...
SSH_PORT Porta SSH (opcional) 22
DEPLOY_PATH Caminho no servidor /var/www/avanzato
STAGING_PATH Caminho staging (opcional) /var/www/avanzato-staging

Como gerar a chave SSH:

# No seu computador (NAO no servidor):
ssh-keygen -t ed25519 -C "github-actions" -f ~/.ssh/github_actions

# Copiar publica para o servidor:
ssh-copy-id -i ~/.ssh/github_actions.pub root@SEU_SERVIDOR

# Copiar privada para o GitHub Secret:
cat ~/.ssh/github_actions
# Cole o conteudo inteiro no secret SSH_PRIVATE_KEY

Estrutura de Branches

main/master      --> Deploy automatico para producao
staging          --> Deploy automatico para staging (se existir)
feature/*        --> Apenas build (sem deploy)
hotfix/*         --> Apenas build (sem deploy)

Como Funciona

Cenario 1: Deploy Automatico

1. Voce faz push para main
2. GitHub Actions executa automaticamente
3. Build + Deploy em ~2 minutos
4. Site atualizado!

Cenario 2: Deploy Manual

1. Va em Actions > Build e Deploy
2. Clique "Run workflow"
3. Escolha: production ou staging
4. Clique "Run"

Cenario 3: Pull Request

1. Cria PR para main
2. CI executa build (testa se compila)
3. NAO faz deploy
4. Merge aprovado? Deploy automatico!

Assets Customizados (Logo, Imagens)

Para preservar assets apos o deploy automatico:

1. Commitar assets no repositorio

git add custom-assets/logo/logo.png
git add custom-assets/images/
git commit -m "Adiciona logo e imagens customizadas"
git push origin main

2. O pipeline faz sozinho

O workflow executa automaticamente:

bash scripts/preserve-assets.sh dist/

Monitore os Deploys


Troubleshooting

Deploy falhou?

  1. Verifique os secrets: Settings > Secrets > Actions
  2. Verifique a chave SSH: ssh -i ~/.ssh/github_actions root@SEU_SERVIDOR
  3. Verifique permissoes: O usuario precisa de acesso de escrita no DEPLOY_PATH
  4. Verifique logs: Actions > Clique no workflow > Veja o passo que falhou

Assets nao preservados?

  1. Verifique se custom-assets/ esta no repositorio
  2. Verifique se os arquivos estao comitados: git ls-files custom-assets/
  3. Verifique os logs do passo "Preservar assets customizados"

Configurado em: Maio 2026