Qué es Cruise Control

De ChuWiki
Saltar a: navegación, buscar

¿Qué es Cruise Control?

Cruise Control es una herramienta que compila automáticamente cada cierto tiempo nuestros proyectos java. Está muy de moda en el tema de integración continua. Supuestamente esta herramienta es útil cuando trabajan varias personas en un proyecto y usan algún sistema de control de versiones, como CVS. Con Cruise Control, si alguien mete la pata poniendo en CVS código que no compile, salta la alarma rápidamente y se puede corregir rápido. Además, se pueden tener muchas versiones de ejecutables, con pequeños cambios cada una. Los fallos de funcionamiento que se introduzcan, se pueden detectar rápidamente y ver qué fuentes son los culpables.

Detalles del funcionamiento de Cruise Control

Una vez que está todo bien configurado, el funcionamiento es el siguiente

Cruise Control permanece arrancado, pero dormido. Cada cierto tiempo que nosostros le digamos, por ejemplo una hora, revisa el CVS de los proyectos (o el sistema de control de versiones que tengamos) a ver si alguien ha modificado algún fuente.

Para evitar pillarle a medias de hacer los cambios, una vez que detecta los cambios espera a que CVS esté inactivo (sin más cambios) durante otro periodo de tiempo que también fijemos, por ejemplo, unos diez minutos. Si en diez minutos no hay nuevos cambios en CVS, Cruise Control considera que se han terminado de hacer las modificaciones.

Cuando ocurre esto, Cruise Control se trae los fuentes modificados de CVS y compila el proyecto. Para que pueda compilarlo debemos decirle en la configuración dónde hay un script que compile el proyecto. Se lleva muy bien con maven o con ant (build.xml), pero es posible pasarle cualquier script ejecutable (un .bat o .sh) que esté bien hecho y sea capaz de devolver error en el compilado.

Si la compilación va bien, todo correcto. En http://localhost:8080 podremos ver la hora de la última compilación con éxito y el log del compilado (la salida del script de compilado). Veremos además que fuentes de CVS son los que se han tocado y han provocado la compilación.

Si la compilación falla, en http://localhost:8080 veremos la hora del último intento fallido, los errores de compilado (salida del script) e incluso enviará un correo informando del fallo a la persona o personas que indiquemos en la configuración.