CruiseControl.NET crea todas las noches IfModificationExists desde la última etiqueta de compilación
-
05-07-2019 - |
Pregunta
Estoy usando un servidor para construir el mismo proyecto de forma continua y nocturna; sin embargo, me gustaría que la compilación nocturna solo se compile si existe una modificación durante el día. Espero lograr esto con la restricción de que ambas compilaciones usan la misma carpeta de trabajo .
Las dos opciones que estoy considerando son:
-
Sondeo de la compilación continua y solo compila la compilación nocturna si se ha producido una compilación continua, posiblemente utilizando algún sistema de token (la construcción continua establece el token, el token de borrado nocturno).
-
Ejecutando una tarea de creación previa al proyecto para revertir el código fuente a la última hora de compilación
Me inclino por la segunda opción, ya que desacopla los scripts de compilación, pero parece ser una tarea mucho más difícil.
¡Sugerencias y consejos para hacer esto serían apreciados!
Información agregada:
La compilación de CI es una compilación rápida de solución en una configuración y Tal vez ejecuta algunas pruebas unitarias rápidas.
La construcción nocturna limpia la construcción entorno, construye el software, los paquetes en un instalador, ejecuta pruebas extendidas, etiquetas el repositorio de código fuente, implementa el instalador a un servidor compartido para comprobadores manuales para recoger y correos electrónicos el equipo de prueba que una construcción comprobable fue hecho.
Solo quiero el la construcción nocturna para ocurrir si hubiera cualquier registro durante el día para que los evaluadores no se vean plagados de repetir correos electrónicos para la misma compilación.
Solución 2
Estoy contento con mi nueva solución ...
Utilizo un MultiTrigger con un schedule Trigger y un prjectTrigger en la compilación nocturna (mejor para llamar compilación completa) y WriteModification / ReadModification para propagar el historial de modificaciones como en esta pregunta .
Otros consejos
Puede que haya terminado de simplificar esta tarea, pero ¿no puede simplemente configurar dos activadores en el proyecto? Un disparador de intervalo para las compilaciones continuas y un disparador de programación con la condición IfModificationExists para las compilaciones nocturnas.
<triggers>
<intervalTrigger seconds="60" name="Continuous" />
<scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
<weekDays>
<weekDay>Monday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>