Uma solução típica é ter um build de IC (integração contínua) em execução em um servidor de build: ele analisará o código-fonte, fará build (em depuração) e executará testes, medirá a cobertura do teste etc.
Agora, outro tipo de compilação geralmente conhecido é "Compilação noturna": faça coisas lentas, como criar documentos de código, criar um pacote de instalação, implantar no ambiente de teste e executar testes automáticos (fumaça ou aceitação) no ambiente de teste etc.
Agora, a pergunta:
- É melhor ter um terceiro "Release build" separado como release build?
- Ou "Build nightly" no modo release e usa-o como release?
O que você está usando na sua empresa?
(A compilação do release também deve adicionar algum tipo de tag ao controle de origem da versão potencial do produto.)
fonte
Uma coisa que estou interessado em fazer é colocar a compilação noturna no modo de lançamento, em vez do modo de depuração. Com estruturas de log como log4net substituindo System.Diagnostics.Debug, as principais diferenças entre os modos Release e Debug são a vida útil do objeto e as otimizações de código.
A menos que você esteja anexando um depurador à sua criação noturna, sugiro que faça isso também.
O processo que seguimos é que a compilação noturna é executada todas as noites e, se funcionar, podemos implantar a mesma compilação em nossos outros servidores (sem reconstrução, basta pegar os instaladores empacotados e executá-los). Se tivermos um problema com a compilação noturna, verificamos as alterações nela em uma ramificação e executamos uma compilação 'noturna' nessa ramificação durante o dia. Os testes podem ser executados novamente.
fonte