O Que É um Build Artifact?
Um build artifact é qualquer arquivo que seu pipeline produz e deseja manter ou repassar - um binário compilado, uma imagem empacotada, um relatório de cobertura.
Jobs de CI rodam em ambientes isolados e descartáveis. Tudo o que um job produz desaparece quando ele termina - a menos que seja salvo como artifact. Os artifacts são a forma de a saída sobreviver a um job e chegar até jobs posteriores, releases ou revisores humanos.
O que conta como artifact
- Saídas de build: binários, JARs, imagens Docker, pacotes de site estático.
- Relatórios: resultados de testes, cobertura, scans de segurança, logs.
- Qualquer coisa que você queira baixar, fazer deploy ou inspecionar após a execução.
Passando artifacts entre jobs
Um job de build faz upload de um artifact; um job posterior de teste ou deploy o baixa. É assim que você faz o build uma vez e reutiliza a mesma saída em um fan-out de jobs, em vez de refazer o build em cada um.
Um pequeno exemplo
Um job de build executa upload-artifact com name: dist, path: dist/. Jobs posteriores de teste e deploy executam download-artifact com o mesmo nome para obter exatamente os bytes que foram gerados - garantindo que testam e enviam a mesma saída.
Artifacts vs caches
Um cache é uma otimização - se estiver ausente, o job ainda funciona, apenas mais devagar. Um artifact é um entregável - se estiver ausente, os jobs posteriores não podem prosseguir. Não armazene saída pronta para release em um cache.
Nomeação e tamanho
Dê aos artifacts nomes claros e únicos (especialmente entre células de matrix, que de outra forma colidiriam) e mantenha-os enxutos. Fazer upload de gigabytes de arquivos desnecessários deixa todo job dependente mais lento e infla o custo de armazenamento.
Principais conclusões
- Um artifact é um arquivo que seu pipeline produz e preserva além de um job.
- Artifacts passam a saída entre jobs, então você faz o build uma vez e o reutiliza.
- Artifacts são entregáveis; caches são otimizações opcionais.