Loading
Up To date For Daily News Timeline
Up To date For Daily News Timeline

GitHub Actions do zero: CI/CD para pequenas equipes



CI/CD deixou de ser exclusividade de grandes times de engenharia. Com o GitHub Actions, qualquer equipe — mesmo com um único desenvolvedor — pode automatizar testes, builds e deploys sem precisar manter infraestrutura própria de pipeline.

O que é CI/CD e por que importa para PMEs

CI (Integração Contínua) garante que cada alteração no código seja automaticamente testada antes de chegar à produção. CD (Entrega Contínua) automatiza o processo de colocar essa alteração no servidor. Para uma PME, isso significa menos bugs em produção e deploy sem intervenção manual.

Conceitos básicos do GitHub Actions

  • Workflow: arquivo YAML que define a automação (fica em .github/workflows/)
  • Trigger: evento que dispara o workflow (push, pull request, agendamento)
  • Job: conjunto de steps que rodam em um runner
  • Step: comando ou action individual dentro de um job
  • Runner: máquina virtual onde o job executa (GitHub oferece gratuitamente)

Workflow 1 — Testes automáticos em cada push

# .github/workflows/test.yml
name: Testes

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm test

Workflow 2 — Build e push de imagem Docker

# .github/workflows/build.yml
name: Build e Push Docker

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - uses: docker/build-push-action@v5
        with:
          push: true
          tags: meuusuario/minha-app:${{ github.sha }}

💡 Segredos no GitHub Actions: Nunca coloque senhas diretamente no YAML. Use Settings → Secrets and variables → Actions no repositório para armazenar credenciais.

Workflow 3 — Deploy automático via SSH

# .github/workflows/deploy.yml
name: Deploy Produção

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PROD_HOST }}
          username: ${{ secrets.PROD_USER }}
          key: ${{ secrets.PROD_SSH_KEY }}
          script: |
            cd /opt/minha-app
            docker compose pull
            docker compose up -d --remove-orphans
            docker image prune -f

Dicas para equipes pequenas

  • Comece pequeno: um workflow de testes já agrega muito valor
  • Use o cache do Actions: acelera builds em 50–80% para projetos com dependências pesadas
  • Monitore os minutos gratuitos: GitHub oferece 2.000 min/mês no plano gratuito
  • Notifique em caso de falha: adicione um step de notificação para falhas críticas

Referências

  1. GitHub. GitHub Actions Documentation. Disponível em: docs.github.com/actions
  2. GitHub. Encrypted Secrets. Disponível em: docs.github.com

Leave a Reply

Your email address will not be published. Required fields are marked *

You Missed