Una solución típica es tener una compilación CI (integración continua) ejecutándose en un servidor de compilación: analizará el código fuente, realizará compilaciones (en depuración) y ejecutará pruebas, medirá la cobertura de las pruebas, etc.
Ahora, otro tipo de compilación generalmente conocido es "Compilación nocturna": haga cosas lentas como crear documentos de código, cree un paquete de instalación, implemente para probar el entorno y ejecute pruebas automáticas (humo o aceptación) contra el entorno de prueba, etc.
Ahora, la pregunta:
- ¿Es mejor tener una tercera "Versión de lanzamiento" separada como versión de lanzamiento?
- ¿O "Nightly build" en modo de lanzamiento y lo usa como lanzamiento?
¿Qué estás usando en tu empresa?
(La versión de lanzamiento también debería agregar algún tipo de etiqueta al control de origen de la versión potencial del producto).
fuente
Una cosa que me gusta hacer es poner la compilación nocturna en modo de lanzamiento en lugar de modo de depuración. Con marcos de registro como log4net reemplazando System.Diagnostics.Debug, las principales diferencias entre los modos Release y Debug son las duraciones de los objetos y las optimizaciones de código.
A menos que realmente vaya a adjuntar un depurador a su compilación nocturna, le sugiero que haga esto también.
El proceso que seguimos es que la compilación nocturna se ejecuta todas las noches y, si eso funciona, podemos implementar la misma compilación en nuestros otros servidores (sin reconstrucción, solo tome los instaladores empaquetados y ejecútelos). Si tenemos un problema con la compilación nocturna, verificamos los cambios en ella en una rama y ejecutamos una compilación "nocturna" fuera de esa rama durante el día. Las pruebas se pueden volver a ejecutar.
fuente