← Biblioteca de skills
Recurso público da comunidadeautomation

Automação idempotente no GitHub Actions

Modele workflows que podem ser repetidos com segurança, evitem concorrência acidental e deixem evidências claras da execução.

Licença: CC BY 4.0

Objetivo do workflow: [resultado] Chave idempotente: [evento + commit + ambiente + recurso] Grupo de concorrência: [nome estável por ambiente ou recurso]

Checklist:

  1. O job pode ser reexecutado sem duplicar publicação, cobrança, e-mail ou migration?
  2. Antes da ação externa, consulte o estado atual e registre uma chave de idempotência.
  3. Use a configuração concurrency para impedir execuções conflitantes no mesmo ambiente; escolha entre cancelar execução antiga ou enfileirar, conforme o risco.
  4. Separe build e teste de deploy; proteja produção com environment, secrets e aprovação.
  5. Defina timeout, retries limitados, logs sem secrets e artefatos diagnósticos.
  6. Faça o workflow falhar quando uma pré-condição crítica estiver ausente.

Referência oficial sobre concorrência: https://docs.github.com/en/actions/concepts/workflows-and-actions/concurrency

Exemplos de uso

Preview por branch: grupo preview-branch, build repetível, deploy só após testes e nenhuma segunda execução publica o mesmo artefato.

Ferramentas compatíveis

GitHub Actions, Supabase CLI, pnpm, Playwright

Limitações e cuidados

Concurrency evita corrida no workflow, mas não substitui idempotência no banco ou provedor externo. Não coloque secrets em logs.