Qual é o seu propósito?
Assuma a carga das máquinas do desenvolvedor, forneça um ambiente estável e reproduzível para compilações.
Por que os desenvolvedores não estão construindo o projeto em suas máquinas locais ou estão?
Porque com software complexo, muitas coisas podem dar errado quando apenas "compilando". problemas que realmente encontrei:
- verificações de dependência incompletas de diferentes tipos, resultando na não atualização dos binários.
- Comandos de publicação com falha silenciosa, a mensagem de erro no log é ignorada.
- Construir incluindo fontes locais ainda não comprometidas com o controle de fontes (felizmente, nenhuma caixa de mensagem de "clientes malditos" ainda ...).
- Ao tentar evitar o problema acima, construindo a partir de outra pasta, alguns arquivos foram retirados da pasta errada.
- A pasta de destino onde os binários são agregados contém arquivos de desenvolvedor obsoletos adicionais que não devem ser incluídos na versão
Temos um aumento de estabilidade incrível, pois todas as versões públicas começam com um get do controle de origem em uma pasta vazia. Antes, havia muitos "problemas engraçados" que "desapareceram quando Joe me deu um novo DLL".
Alguns projetos são tão grandes que máquinas mais potentes são necessárias para construí-los em um período de tempo razoável?
O que é "razoável"? Se eu executar uma compilação em lote em minha máquina local, há muitas coisas que não posso fazer. Em vez de pagar os desenvolvedores para que as compilações sejam concluídas, pague a TI para comprar uma máquina de construção real.
Será que simplesmente não trabalhei em projetos grandes o suficiente?
O tamanho é certamente um fator, mas não o único.