← CI/CD: construir, validar e entregar
06 / 12 · 40 MIN

Operação e recuperação

Diagnostica atrasos e falhas sem duplicar efeitos ou perder controlo da execução.

Conceito e mecanismo

Uma pipeline também é um serviço operacional. Precisa de observação, responsáveis, limites de tempo e comportamento conhecido perante interrupção. Separa tempo em fila de tempo de execução. Num cálculo original, nove minutos de fila, quatro de build, sete de testes e três de deployment perfazem 23 minutos, dos quais 14 são execução. Otimizar compilação não remove diretamente os nove minutos de espera. Analisa o caminho crítico e disponibilidade de runners antes de adicionar paralelismo. Quando um comando falha, distingue indisponibilidade transitória, entrada inválida e defeito persistente. Retry deve ter condição e limite, e o corpo repetido precisa de ser seguro perante efeitos já produzidos.

Aplicação guiada

Em Jenkins, retry volta a executar o bloco nas condições definidas; não desfaz automaticamente uma chamada externa que já teve efeito. timeout interrompe por exceção, salvo tratamento explícito, e também não é um plano de recuperação do serviço. Num cenário fictício, uma migração executou metade dos passos antes de uma execução ser cancelada por uma mais recente. Inspeciona o estado e reconcilia antes de repetir. Em GitHub, concurrency controla execução por grupo; cancel-in-progress pode cancelar a execução ativa, mas não reverte escritas externas. A documentação atual distingue a fila single da opção max; ordem de espera não deve ser confundida com ordem dos commits. Mantém logs, estado e referência ao artefacto para que a equipa seguinte consiga recuperar com contexto.

NA PRÁTICA

Cancelar o job depois de uma escrita não apaga essa escrita.

Armadilhas comuns

Tempo total como duração dos testes; retry sem idempotência; cancelamento como rollback; timeout sem recuperação.

Tópicos relacionados: Integração e entrega · Jobs e dependências · Artefactos e evidência

Leva esta ideia contigo

Controla a execução e recupera o estado real, não apenas o estado apresentado pela pipeline.

Criar conta

Referência: Bounded retry timeout and stash lifetime · CI/CD practices 2026-09; scoped GitHub Actions GitLab Jenkins and Azure DevOps Services documentation