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.)