O Que É Retenção de Artifacts? Armazenar Saídas de CI com Bom Senso
Retenção de artifacts é a política de por quanto tempo o CI mantém os arquivos que um build produz - binários, relatórios de teste, logs - antes de excluí-los automaticamente para controlar o custo de armazenamento.
Cada execução pode emitir artifacts: binários compilados, relatórios de coverage e de teste, screenshots, logs. A retenção é a regra que decide por quanto tempo eles permanecem. Defina-a curta demais e você perde evidências de depuração; longa demais e as contas de armazenamento disparam.
O que é um artifact
Um artifact é qualquer arquivo que um job envia para ser mantido depois que o runner é destruído. Como os runners são efêmeros, qualquer coisa que você queira inspecionar depois - o screenshot de um teste que falhou, um pacote buildado, um bundle de logs - precisa ser explicitamente enviada como artifact ou desaparece junto com o runner.
Por que a retenção existe
Artifacts consomem armazenamento faturado que se acumula ao longo de milhares de execuções. A retenção os exclui automaticamente após um período definido para que o armazenamento não cresça sem limite. Os provedores aplicam uma janela padrão (muitas vezes de algumas semanas a 90 dias) que você pode encurtar ou alongar por artifact.
Escolhendo uma política
- Retenção curta para grandes saídas de build reproduzíveis que você pode reconstruir.
- Retenção mais longa para relatórios de teste e logs que você pode precisar para depurar regressões.
- Janelas separadas por artifact em vez de uma única configuração geral.
- Artifacts de release muitas vezes pertencem a um registry de verdade, não ao armazenamento de artifacts do CI.
Erros comuns
Enviar artifacts enormes em cada execução com a retenção longa padrão é a causa usual de contas de armazenamento surpresa. O erro oposto - retenção curta demais - exclui a evidência de que você precisava para depurar uma falha intermitente. Ajuste a janela ao quão reproduzível e quão valioso diagnosticamente é cada artifact.
Principais conclusões
- A retenção define por quanto tempo o CI mantém os artifacts enviados antes de excluí-los.
- Runners efêmeros significam que qualquer coisa que você queira depois precisa ser enviada como artifact.
- Ajuste as janelas por artifact: curtas para saídas reconstruíveis, mais longas para evidências de depuração.
- Retenção longa em grandes artifacts por execução é uma das principais causas de surpresas na conta de armazenamento.