🚀 Guia Rápido CI/CD - alessiojr.com

📦 O que foi criado

  1. .gitlab-ci.yml - Pipeline GitLab CI/CD
  2. deploy.sh - Script para deploy manual via SSH
  3. test-build.sh - Script para testar build localmente
  4. .gitlab-ci-setup.md - Guia completo de configuração

⚡ Início Rápido

Parte 1: Testar o Build Localmente

# Testa se o build funciona
./test-build.sh

# Ou manualmente:
quarto render

Parte 2: Configurar Variáveis no GitLab

  1. Acesse: Settings > CI/CD > Variables
  2. Adicione estas variáveis:
SSH_PRIVATE_KEY    → Conteúdo completo da chave privada (do pen)
SSH_HOST           → usuario@servidor.com (ou IP)
SSH_PORT           → 22 (ou outra porta)
DEPLOY_PATH        → /var/www/html (caminho no servidor)

Como obter a chave SSH privada:

# Se a chave está no pen drive
cat /caminho/do/pen/id_rsa
# Copie TODO o conteúdo (incluindo -----BEGIN... e -----END...)

Parte 3: Testar o Pipeline no GitLab

  1. Faça commit do .gitlab-ci.yml:

    git add .gitlab-ci.yml
    git commit -m "Adiciona CI/CD pipeline"
    git push
  2. Vá em CI/CD > Pipelines no GitLab

  3. O stage test:build será executado automaticamente

  4. Verifique se passou ✅

Parte 4: Fazer Deploy

Opção A: Via GitLab (Recomendado) 1. Faça merge para main ou master 2. Vá em CI/CD > Pipelines 3. Clique em ▶️ Play no stage deploy:production

Opção B: Manual (via script)

# Usando variáveis de ambiente
export SSH_HOST="usuario@servidor.com"
export DEPLOY_PATH="/var/www/html"
export SSH_KEY="/caminho/do/pen/id_rsa"
./deploy.sh

# Ou passando argumentos
./deploy.sh usuario@servidor.com /var/www/html 22

🔧 Configuração do Servidor Web

Nginx (Exemplo)

server {
    listen 80;
    server_name alessiojr.com www.alessiojr.com;
    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    # Cache para assets estáticos
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Apache (Exemplo)

<VirtualHost *:80>
    ServerName alessiojr.com
    ServerAlias www.alessiojr.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

📋 Checklist de Configuração

🐛 Troubleshooting Rápido

Problema Solução
Build falha Execute ./test-build.sh localmente para ver erros
SSH não conecta Teste: ssh -i /caminho/chave usuario@servidor
Permissão negada chmod 755 /var/www/html no servidor
Site não aparece Verifique logs do servidor web

📚 Próximos Passos

  1. ✅ Teste o build localmente
  2. ✅ Configure variáveis no GitLab
  3. ✅ Teste o pipeline
  4. ✅ Configure servidor web
  5. ✅ Faça primeiro deploy
  6. ✅ Automatize (opcional: deploy automático em main)
Back to top