O Que É um Build Stage? A Fase de Compilar e Empacotar
Um build stage é a fase do pipeline que transforma código-fonte em artifacts executáveis, como binários compilados ou imagens de container, antes de testar ou fazer deploy.
A maioria dos pipelines começa com um build stage. É onde o source se torna algo que você pode executar ou entregar: compilar código, empacotar assets, construir uma imagem de container. Tudo depois disso depende dele, então o build stage geralmente vem primeiro e sua saída (o artifact) flui downstream para os stages de test e deploy.
O que acontece no build stage
- Instalar as dependências que o build precisa.
- Compilar ou transpilar o código-fonte.
- Empacotar assets e empacotar a saída.
- Produzir um artifact para os stages posteriores.
Por que ele vem primeiro
Você não pode testar ou fazer deploy do que não foi construído. O build stage produz o artifact que o stage de test exercita e o stage de deploy entrega. Uma falha de build para o pipeline antes que qualquer stage posterior execute.
Um exemplo rápido
Um build stage de Node executa npm ci e depois npm run build, produzindo uma pasta dist/ enviada como artifact. O stage de test baixa dist/ e executa contra ela; o stage de deploy entrega o mesmo artifact.
Construir uma vez, usar em todo lugar
Uma boa prática é construir o artifact uma vez e reutilizá-lo em cada stage posterior, em vez de reconstruir por stage. Isso garante que test e produção executem exatamente os mesmos bits e economiza o custo de builds repetidos.
Velocidade do build stage
Builds frequentemente são o stage mais lento por causa de instalações de dependências e compilação. Fazer cache de dependências e build layers é a maior alavanca. Runners gerenciados (Latchkey) mantêm esses caches aquecidos para que o build stage comece de um estado preparado em vez de frio.
Principais conclusões
- Um build stage transforma source em artifacts executáveis antes de test e deploy.
- Ele vem primeiro porque os stages posteriores dependem de sua saída.
- Construa o artifact uma vez e reutilize-o downstream para consistência e velocidade.