Acesse o painel da sua conta

Não tem uma conta? Registrar

Entrar em contato

Visite também nosso site craftxp.com.br

  • img
  • img
  • img
  • img
  • img
  • img

Entre em contato

GitHub Actions: Automatizando CI/CD com Pipelines Modernos

GitHub Actions: Automatizando CI/CD com Pipelines Modernos

O que é GitHub Actions?

O GitHub Actions é a plataforma de automação nativa do GitHub que permite criar pipelines de CI/CD (Integração e Entrega Contínuas) diretamente no seu repositório. Com ela, você pode automatizar builds, testes, deploys e qualquer outra tarefa em resposta a eventos do repositório — tudo isso sem sair do ecossistema GitHub.

Diferente de ferramentas como Jenkins (que exige servidores próprios) ou plataformas externas como CircleCI e Travis CI, o GitHub Actions é integrado ao GitHub, oferecendo execução gratuita para repositórios públicos e uma cota generosa para privados.

Conceitos Fundamentais

Antes de criar seu primeiro workflow, é essencial entender os pilares do GitHub Actions:

  • Workflow: Um processo automatizado definido em YAML dentro de .github/workflows/. Cada repositório pode ter múltiplos workflows.
  • Event: O gatilho que inicia o workflow — push, pull_request, schedule (cron), workflow_dispatch (manual) e dezenas de outros.
  • Job: Um conjunto de steps executados no mesmo runner. Jobs podem rodar em paralelo ou sequencialmente via needs.
  • Step: Uma tarefa individual dentro de um job — pode ser um comando shell ou uma Action reutilizável.
  • Runner: O servidor que executa os workflows. O GitHub oferece runners hospedados (Ubuntu, Windows, macOS) ou você pode hospedar seus próprios runners.
  • Action: Uma unidade reutilizável de código, publicada no GitHub Marketplace.

Seu Primeiro Workflow

Crie o arquivo .github/workflows/ci.yml no seu repositório com o seguinte conteúdo:

name: CI\non: [push, pull_request]\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v4\n    - name: Setup Node.js\n      uses: actions/setup-node@v4\n      with:\n        node-version: 20\n    - name: Instalar dependencias\n      run: npm ci\n    - name: Rodar testes\n      run: npm test\n    - name: Verificar lint\n      run: npm run lint

Esse workflow executa a cada push ou pull_request para a branch main, instalando dependencias, rodando testes e verificando lint.

Matriz de Build

Use uma estrategia de matriz para testar seu projeto em multiplas versoes de linguagens ou sistemas operacionais simultaneamente:

jobs:\n  test:\n    strategy:\n      matrix:\n        node-version: [18, 20, 22]\n        os: [ubuntu-latest, windows-latest]\n    runs-on: ${{ matrix.os }}\n    steps:\n    - uses: actions/checkout@v4\n    - uses: actions/setup-node@v4\n      with:\n        node-version: ${{ matrix.node-version }}\n    - run: npm ci\n    - run: npm test

Isso executa 6 combinacoes (3 versoes do Node x 2 sistemas operacionais) em paralelo.

Actions do Marketplace

O GitHub Marketplace oferece milhares de Actions prontas para uso. Algumas essenciais:

  • actions/checkout: Faz o checkout do repositorio no runner
  • actions/setup-node / setup-python / setup-java: Configura ambientes de linguagens
  • docker/login-action: Autentica no Docker Hub ou container registries
  • docker/build-push-action: Constroi e envia imagens Docker
  • aws-actions/configure-aws-credentials: Configura credenciais AWS para deploy
  • actions/cache: Cacheia dependencias (npm, pip, Maven) para acelerar builds
  • codecov/codecov-action: Envia relatorios de cobertura de testes

Cache Inteligente

Um dos maiores gargalos em CI e o download de dependencias em toda execucao. Use cache para acelerar:

steps:\n- uses: actions/checkout@v4\n- name: Cache node_modules\n  uses: actions/cache@v4\n  with:\n    path: ~/.npm\n    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

Deploy Automatizado

Pipeline completo de CI/CD com deploy para producao usando GitHub Actions e Docker:

jobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v4\n    - uses: actions/setup-node@v4\n    - run: npm ci\n    - run: npm test\n  build-and-deploy:\n    needs: test\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v4\n    - name: Login no Docker Hub\n      uses: docker/login-action@v3\n      with:\n        username: ${{ secrets.DOCKER_USERNAME }}\n        password: ${{ secrets.DOCKER_PASSWORD }}\n    - name: Build e Push\n      uses: docker/build-push-action@v5\n      with:\n        push: true\n        tags: usuario/app:latest

Workflows com Schedule (Cron)

Workflows podem ser agendados para rodar em intervalos regulares, perfeito para tarefas como backups, scraping ou verificacao de saude:

on:\n  schedule:\n    - cron: '0 6 * * *'  # Todo dia as 06:00 UTC\njobs:\n  health-check:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Verificar endpoint\n      run: curl -f https://api.meusite.com/health || exit 1

Ambientes e Protecoes

O GitHub Actions permite configurar ambientes com regras de protecao, como aprovacao manual antes do deploy em producao. Configure em Settings > Environments > production > Required reviewers.

Boas Praticas

  1. Secrets, nunca hardcode: Use ${{ secrets.MEU_SEGREDO }} para senhas e tokens. Sao criptografados e mascarados nos logs.
  2. Cache de dependencias: Reduza o tempo de CI em 50-80% com actions/cache.
  3. Jobs paralelos: Use estrategia de matriz para testar multiplas combinacoes.
  4. Minimo privilegio: Configure permissoes no nivel do workflow.
  5. Idempotencia: Workflows devem ser seguros para reexecutar.

GitHub Actions no Mundo Real

Empresas como Vercel, Google, Netflix e milhares de startups usam GitHub Actions como peca central de sua estrategia de CI/CD. A integracao nativa com o ecossistema GitHub — Issues, Pull Requests, Projects — torna o Actions a escolha natural.

Conclusao

O GitHub Actions democratizou a automacao de CI/CD, tornando pipelines complexos acessiveis para qualquer desenvolvedor. Com sintaxe YAML intuitiva, milhares de Actions prontas no Marketplace e integracao profunda com o GitHub, ele se consolidou como a principal ferramenta de CI/CD para projetos de todos os tamanhos.

Para continuar seus estudos:

  1. Explore o GitHub Marketplace para descobrir Actions uteis
  2. Leia a documentacao oficial sobre seguranca e boas praticas
  3. Crie sua propria Action personalizada
  4. Implemente GitOps combinando GitHub Actions com ArgoCD ou Flux

Automatize tudo, erre menos e entregue mais rapido. Esse e o poder do GitHub Actions.

Craft XP
Craft XP