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:
- O job pode ser reexecutado sem duplicar publicação, cobrança, e-mail ou migration?
- Antes da ação externa, consulte o estado atual e registre uma chave de idempotência.
- Use a configuração concurrency para impedir execuções conflitantes no mesmo ambiente; escolha entre cancelar execução antiga ou enfileirar, conforme o risco.
- Separe build e teste de deploy; proteja produção com environment, secrets e aprovação.
- Defina timeout, retries limitados, logs sem secrets e artefatos diagnósticos.
- 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.