O Que É um Build em Software?
Um build é o processo, e o resultado, de transformar código-fonte escrito por humanos em uma forma executável ou distribuível do software.
A palavra "build" tem dupla função: ela nomeia tanto o ato de compilar e empacotar código quanto o artifact que esse ato produz. Entender o que é um build esclarece a maior parte do que o CI faz, porque o CI é, em sua essência, um motor que roda builds.
Build como um processo
Como processo, um build transforma código-fonte em algo que um computador pode rodar. Dependendo da linguagem, isso significa compilar para código de máquina ou bytecode, transpilar para outra linguagem, empacotar arquivos juntos e empacotar o resultado. A mesma fonte pode ser construída em diferentes configurações, como debug ou release.
Build como um artifact
Como substantivo, "um build" se refere à saída desse processo: um binário, uma imagem de container, um JAR, um bundle compactado. Cada build geralmente é rotulado com um identificador de versão ou commit para que você possa rastrear exatamente qual fonte o produziu. Esse artifact é o que de fato é deployado.
Um exemplo
Para um serviço Java, um build baixa as dependências, compila a fonte em arquivos de classe, roda qualquer geração de código e empacota tudo em um único arquivo JAR marcado com uma versão. Esse JAR é "o build", e é o que vai para os servidores.
Por que builds rodam no CI
Um build é a primeira coisa que o CI faz a cada mudança, porque se o código nem sequer faz build, nada mais importa. Um build bem-sucedido e reproduzível também é uma pré-condição para teste e deployment. O CI roda builds em máquinas limpas para capturar dependências ou etapas que só funcionavam localmente por acidente.
O que faz um bom build
- Reproduzível: a mesma entrada sempre produz a mesma saída.
- Rápido: feedback rápido mantém os desenvolvedores integrando com frequência.
- Rastreável: cada build mapeia de volta a um commit específico.
- Limpo: construído do zero, não a partir de estado local remanescente.
Principais conclusões
- Um build é tanto o processo de produzir software executável quanto sua saída.
- Builds devem ser reproduzíveis, rápidos e rastreáveis até um commit.
- O CI faz build em máquinas limpas para capturar suposições que só valem localmente.