sábado, 5 de mayo de 2007

Integración continua usando Continuum

Continuum es un producto de la fundación Apache para integración continua. A diferencia de Cruise Control, Continuum utiliza una interfaz web para realizar todas sus operaciones. El producto esta basado en el popular scheduler Quartz y permite integrar proyectos de maven 1, Maven 2, Ant y scripts. Lo bueno de Continuum es lo fácil de instalar y de administrar. Prácticamente se tiene continuum corriendo en menos de 5 minutos.

La versión estable es la 1.0.3, la cual corre bajo un jetty autocontenido que por defecto corre en el puerto 8080. La instalación es básicamente descomprimir el instalador en un directorio cualquiera. En la carpeta bin existen scripts para ejecutarlo bajo diferente plataformas, solo basta ubicar la plataforma y ejecutar el comando ./run.sh start o si es windows .\run.bat. Cuando se ejecuta este comando por primera vez, Continuum expande en la carpeta apps la aplicación con sus valores por defecto así como crea la instancia de base de datos que usa internamente. Por defecto la base de datos es Apache Derby pero puede ser cambiada por otra ( Continuum trae una definición para postgreSQL y he leído de personas que lo han configurado con MySQL ).

Para probar la instalación solo falta ejecutar http://localhost:8080/continuum/servlet/continuum. La primera vez que se ejecuta se llega a una pagina para registrar el usuario administrador. Despues se puede hacer login con ese usuario y comenzar a usar la aplicación. La aplicación permite la definición de usuarios basados en perfiles así como también permite de forma opcional usuarios guest.

Si se quiere cambiar la configuración por defecto se debe editar el archivo apps/conf/application.xml. Alli se puede cambiar el puerto de ejecución, la información del servidor smtp para notificaciones, etc.

Los logs de la aplicacion se pueden ver bajo apps/logs.

Para registrar un proyecto solo basta con seleccionar el tipo de proyecto desde el menu y cargar el archivo de configuración del proyecto. Para Maven 1 es el project.xml, Maven 2 el pom.xml, ant el build.xml, etc. Lo único requerido es que el archivo de configuración tenga definido los parametros de scm para conectarse con el repositorio de control de versiones (CVS, SVN, etc). Una vez que se carga el archivo de configuración Continuum se encarga de registrarlo en la bd usando los valores definidos en el archivo y baja del repositorio una copia local sobre la cual va a trabajar. Después Continuum se encargara de revisar el repositorio scm por cambios (por defecto cada hora), si se encuentran cambios presentes estos se bajan a la copia local y se ejecutan todos los comandos definidos durante el proceso de setup del proyecto. Para Maven 2 seria clean install. Si se presenta un error durante esta ejecución se enviaran notificaciones a los usuarios responsables. Estas notificaciones pueden ser por email o por IM. Adicionalmente Continuum mantienen un histórico de todos los builds que ha realizado o intentado realizar sobre un proyecto.

Si se quiere hacer seguimiento de este proyecto se pueden registrar en Nabble y asi reciben feedback de la comunidad.

En este momento se encuentra disponible para pruebas la version 1.1 alpha. Esta versión contiene una gran cantidad de mejoras con respecto a la 1.0.3. No he podido revisarla en profundidad pero si noté que cambio la interfaz web, esta fue reestructurada y ahora como que tiene mas opciones. El otro cambio interesante es que ahora se distribuye tambien como un war por lo que se puede instalar en cualquier servlet container de su preferencia.

Una nota interesante, si se esta trabajando bajo windows y se tiene Zone Alarm instalado se puede obtener un error de clase no definida "Files Zone" al tratar de arrancar Continuum. El probema se debe a que Zone Alarm modifica el PATH de la máquina y agrega un directorio definido entre doble comillas. Solo deben quitar esas dobles comillas, abrir una nueva ventana DOS y volver a ejecutar .\start.bat.


Powered by ScribeFire.


6 comentarios:

jurguen dijo...

te hago una pregunta. Desde linea de comando (win) puedo ejecutar el checkout pero desde continuum mismo user y password (la registre con un login)me arroja

INFO | jvm 1 | 2007/06/03 20:00:00 | cvs [checkout aborted]: authorization failed: server cvs1.xxx.com rejected access to /cvs/xxx for user xxx.

Tenes alguna pista?

gracias

Unknown dijo...

Que tipo de proyecto usas? maven 1, 2, ant? Como definistes el scm?

jurguen dijo...

es un proyecto ant.
scm:cvs|pserver|xxx@cvs1.xxx.com|/cvs/xxx|xxx

yo instale el continuum como servicio, se me ocurre quizas el problema este en el usuario 'sytemLocal' que es el default, pero cuando lo quise cambiar no pude. quizas hay un problema con el servidor de dominio. Puede ser?

gracias

Unknown dijo...

No he usado Continuum con ant pero encontre un reporte similar al tuyo

http://www.nabble.com/Problem-with-cvs-on-Ant-Project-tf3607520.html#a10079102

La solución que dan es

You can fix this problem by running 'cvs login' command with the user that continuum use.

O sea, ejecutar el login de cvs de forma manual. No me parece una buena solucion, voy a seguir investigando.

Unknown dijo...

Creo que el url no se copio bien en el post anterior

http://www.nabble.com/
Problem-with-cvs-on-Ant-Project-tf3607520.html#
a10079102

jurguen dijo...

No se bien que paso pero lo resolvi. Basicamente detuve el servicio y ahora anda. (...) No entiendo pero no importa. gracias por tus respuestas.

pd: Ahora tengo errores pero parecen ser la mugre que hay en el repositorio.

truncation error was encountered trying to shrink VARCHAR 'cvs checkout...etc

saludos