Pipeline de CI/CD com GitHub Actions

Crie um workflow do GitHub Actions para lint, testes, build e deploys por ambiente, com cache, segredos seguros e aprovação manual para produção. Pensado para ChatGPT, Claude e Microsoft Copilot. Inclui 7 variáveis personalizáveis e pode copiá-lo gratuitamente com um clique.

Intermédio · Código · Pendente de revisão editorial

Prompt

Age como um engenheiro DevOps especializado em GitHub Actions e em pipelines rápidos e seguros.

Projeto: {{project}}.
Stack e gestor de pacotes: {{stack}}.
Comandos atuais: lint `{{lint_cmd}}`, testes `{{test_cmd}}`, build `{{build_cmd}}`.
Destino do deploy: {{deploy_target}}.
Estratégia de branches: {{branching}}.

Entrega, por esta ordem:
1. Um diagrama em texto do pipeline: que jobs correm em pull requests, em pushes para a branch principal e em tags de release, e quais correm em paralelo.
2. O ficheiro `.github/workflows/ci.yml` completo, com:
   - `concurrency` para cancelar execuções desatualizadas.
   - Cache de dependências e versões das actions fixadas (idealmente por SHA).
   - `permissions` de privilégio mínimo por job.
   - Matriz de versões apenas onde acrescente valor.
   - O artefacto de build enviado e reutilizado pelo job de deploy.
3. Um workflow ou job de deploy que use `environments` (staging e produção), aprovação manual para produção e autenticação OIDC em vez de chaves de longa duração quando o fornecedor o suportar.
4. A lista de segredos e variáveis necessários e onde os configurar. Nunca escrevas valores reais: usa [PREENCHER].
5. Regras de proteção de branches recomendadas e verificações obrigatórias.
6. Como reduzir o tempo do pipeline e como fazer rollback.

Restrições:
- Comenta as partes não óbvias do YAML.
- Se algum detalhe do deploy não estiver claro, pergunta-me em vez de assumires.

Como utilizar

  1. Copie os comandos reais que executa localmente para lint, testes e build.
  2. Diga onde faz o deploy (Vercel, AWS, um VPS, Fly.io…).
  3. Guarde o YAML em .github/workflows/ e adicione os segredos em Settings → Secrets and variables.
  4. Abra um pull request de teste para verificar o pipeline antes de ativar a proteção de branches.

Exemplo de utilização

Projeto: API Node.js com PostgreSQL · Stack: Node 22 com pnpm · Deploy: contentor na AWS ECS · Branches: main e branches de funcionalidades.

Exemplo de resultado

1. Diagrama

PR ──► lint ─┐
             ├─► build (imagem Docker)
PR ──► test ─┘
push main ──► lint + test ─► build ─► deploy staging ─► [aprovação] ─► deploy produção

2. .github/workflows/ci.yml (excerto dos jobs)

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      contents: read            # privilégio mínimo
    services:
      postgres:                 # base de dados descartável só para os testes
        image: postgres:16
        env: { POSTGRES_PASSWORD: postgres }
        ports: ['5432:5432']
        options: --health-cmd pg_isready --health-interval 5s --health-retries 10
    steps:
      - uses: actions/checkout@v4          # fixar por SHA: [PREENCHER]
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with: { node-version: 22, cache: pnpm }
      - run: pnpm install --frozen-lockfile
      - run: pnpm lint
      - run: pnpm test
        env:
          DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres
      - run: pnpm build
      - uses: actions/upload-artifact@v4   # reutilizado pelo job de deploy
        with: { name: dist, path: dist/ }

A autenticação na AWS será feita por OIDC (id-token: write só no job de deploy) com uma role IAM: ARN da role [PREENCHER], região [PREENCHER], nomes do cluster e do serviço ECS [PREENCHER]…

Dados-chave

Categoria
Programação e desenvolvimento · DevOps
Tipo de resultado
Código
Nível
Intermédio
Pensado para
ChatGPT, Claude e Microsoft Copilot
Verificado em
Pendente de verificação editorial
Variáveis
Projeto, Stack e gestor de pacotes, Comando de lint, Comando de testes, Comando de build, Destino do deploy e Estratégia de branches
Idioma
Português
Preço
Gratuito, sem registo
Atualizado
07/11/2026

Perguntas frequentes

Porquê fixar as actions por SHA?

Uma etiqueta como v4 pode ser movida para apontar para código diferente. Fixar o SHA protege-o de alterações inesperadas ou de uma action comprometida. O Dependabot pode manter esses SHA atualizados por si.

O que é o OIDC e porque devo usá-lo?

Permite que o GitHub peça credenciais de curta duração ao seu fornecedor de cloud em cada execução, para que nunca guarde chaves de acesso permanentes como segredos do repositório.

Para que serve este prompt?

Crie um workflow do GitHub Actions para lint, testes, build e deploys por ambiente, com cache, segredos seguros e aprovação manual para produção.

Com que ferramentas de IA funciona?

Foi pensado para ChatGPT, Claude e Microsoft Copilot. Ainda não o verificámos nestas ferramentas, pelo que os resultados podem variar entre elas.

Como personalizo o prompt?

Clique em “Personalizar” e preencha as variáveis (Projeto, Stack e gestor de pacotes, Comando de lint, Comando de testes, Comando de build, Destino do deploy e Estratégia de branches). O texto atualiza-se instantaneamente e pode depois copiá-lo com um clique. Os valores ficam guardados apenas no seu navegador.

Preciso de experiência para o utilizar?

É de nível intermédio: convém conhecer o tema para fornecer bom contexto e rever o resultado com sentido crítico.

Este prompt é gratuito?

Sim. Todos os prompts do HomeCasa Prompts são gratuitos, sem registo nem subscrição. Pode também utilizá-los em projetos profissionais.

Posso confiar no resultado da IA?

Trate-o como um rascunho de qualidade: verifique sempre os dados, os números e as afirmações importantes antes de publicar ou tomar decisões.

Prompts relacionados