🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

Como configurar um pipeline de CI/CD com ações do GitHub em 2026: guia completo

⏱️5 min read  ·  1,018 words

Ações do GitHub é a plataforma CI/CD mais popular em 2026 — integrada ao GitHub, com um enorme mercado de ações pré-fabricadas. Este guia cria um pipeline completo, desde o teste até a implantação, inteiramente em arquivos YAML em seu repositório.

Como funcionam as ações do GitHub

Os fluxos de trabalho residem em.github/workflows/*.yml. Cada fluxo de trabalho é acionado em eventos (push, pull request, agendamento) e contémempregos que rodam emcorredores (VMs hospedadas no GitHub). Os trabalhos contêmpassos — comandos shell ou reutilizáveis açõesFluxo de trabalho básico de CI.

Construções de matriz (testar múltiplas versões)

# .github/workflows/ci.yml
name: CI

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 run lint
      - run: npm test
      - run: npm run build

Dependências de cache

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        node: [18, 20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - run: npm ci
      - run: npm test
# Runs 9 combinations (3 OS x 3 Node versions) in parallel

Construindo e empurrando imagens Docker

steps:
  - uses: actions/checkout@v4

  # setup-node has built-in caching
  - uses: actions/setup-node@v4
    with:
      node-version: '20'
      cache: 'npm'   # caches ~/.npm automatically

  # Or cache manually for other tools
  - uses: actions/cache@v4
    with:
      path: |
        ~/.cache/pip
        .venv
      key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}

Implantação com Ambientes e Aprovações

name: Build and Push

on:
  push:
    branches: [main]

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: docker/build-push-action@v6
        with:
          context: .
          push: true
          tags: |
            ghcr.io/${{ github.repository }}:latest
            ghcr.io/${{ github.repository }}:${{ github.sha }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

Gerenciando segredos

jobs:
  deploy:
    runs-on: ubuntu-latest
    needs: [test]           # only deploy if tests pass
    environment:
      name: production      # can require manual approval in repo settings
      url: https://example.com
    steps:
      - uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PROD_HOST }}
          username: ${{ secrets.DEPLOY_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /app
            docker compose pull
            docker compose up -d

Armazene segredos em

repo Configurações, depois Segredos e variáveis, depois Ações. Referencie-os como. Eles estão mascarados em registros e nunca expostos. Use segredos específicos do ambiente para preparação versus produção.${{ secrets.NAME }}Fluxos de trabalho reutilizáveis e ações compostas

steps:
  - run: ./deploy.sh
    env:
      API_KEY: ${{ secrets.API_KEY }}
      DATABASE_URL: ${{ secrets.DATABASE_URL }}

Dicas de otimização

# Call a reusable workflow to avoid duplication
jobs:
  call-shared:
    uses: ./.github/workflows/shared-test.yml
    with:
      node-version: '20'
    secrets: inherit

# shared-test.yml declares:
# on:
#   workflow_call:
#     inputs:
#       node-version:
#         type: string

Usar

  • controlar a ordem dos trabalhos e executar trabalhos independentes em paraleloneeds:Dependências de cache
  • — a maior aceleração para a maioria dos pipelinesCancelar execuções desatualizadas:
  • Use filtros de caminho: concurrency: { group: ${{ github.ref }}, cancel-in-progress: true }
  • execute fluxos de trabalho somente quando arquivos relevantes forem alteradosFixar versões de ação
  • ) para estabilidade e segurança (@v4Perguntas Frequentes

P: Ações do GitHub versus GitLab CI versus Jenkins?

R: GitHub Actions se seu código estiver no GitHub – integração profunda e um grande mercado. GitLab CI para código hospedado no GitLab. Jenkins para máximo controle/auto-hospedagem ou necessidades empresariais complexas. Actions é o mais fácil para projetos GitHub.
P: O GitHub Actions é gratuito?

R: Os repositórios públicos recebem minutos grátis ilimitados. Os repositórios privados recebem uma cota mensal gratuita e pagam por minuto. Para a maioria dos projetos pequenos e de código aberto, é efetivamente gratuito.
P: Como posso acelerar fluxos de trabalho lentos?

R: Dependências de cache (maior vitória), execute jobs em paralelo com
, use filtros de caminho para ignorar execuções irrelevantes e cancelar execuções desatualizadas com grupos de simultaneidade. Identifique quais etapas são mais lentas primeiro.needs:P: Como posso exigir aprovação antes da implantação da produção?

R: Use ambientes GitHub com revisores necessários. Configure o
ambiente nas configurações do repositório para exigir aprovação manual — o trabalho de implantação é pausado até que um revisor aprovado confirme.productionP: Posso executar fluxos de trabalho de acordo com uma programação?

R: Sim — use
para execuções agendadas (compilações noturnas, trabalhos de limpeza, verificações periódicas). A sintaxe do Cron controla o tempo.on: schedule: - cron: '0 0 * * *'Conclusão

GitHub Actions torna CI/CD acessível com tudo definido em YAML em seu repositório. Este guia cobre o essencial: fluxos de trabalho de CI com construções de matriz, cache de dependência, construção de imagens Docker e implantação com aprovações de ambiente. O enorme mercado de ações pré-construídas significa que você raramente escreve coisas do zero. Comece com um fluxo de trabalho de teste simples, adicione tarefas de criação e implantação de forma incremental, armazene cache agressivamente para obter velocidade e use ambientes para controlar implantações de produção. É o caminho mais rápido para CI/CD profissional para projetos hospedados no GitHub.

GitHub Actions torna CI/CD acessível com tudo definido em YAML em seu repositório. Este guia cobre o essencial: fluxos de trabalho de CI com construções de matriz, cache de dependência, construção de imagens Docker e implantação com aprovações de ambiente. O enorme mercado de ações pré-construídas significa que você raramente escreve coisas do zero. Comece com um fluxo de trabalho de teste simples, adicione tarefas de criação e implantação de forma incremental, armazene cache agressivamente para obter velocidade e use ambientes para controlar implantações de produção. É o caminho mais rápido para CI/CD profissional para projetos hospedados no GitHub.

✍️ Leave a Comment

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

🌐 Read in:🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা