LuntBuild. Eligiendo nuestro entorno de Integración Continua (III).

LuntBuild es otro sistema de Integración Continua software libre escrito en Java. Nuevamente nos encontramos ante una herramienta web fácil de instalar y configurar. Ofrece una interfaz base simple, pero flexible, gracias a sus mecanismos de extensión.

En realidad el alcance de LuntBuild va más allá de una plataforma de Integración continua. Por ejemplo, también permite almacenar y gestionar los artifacts generados, gestionar las versiones y dependencias entre proyectos, la gestión de notificaciones o incluso la publicación de blogs asociados a los proyectos.

LuntBuild ha sido desarrollado por PMEase, que también ofrece una versión comercial de esta herramienta llamada QuickBuild. Este software ofrece algunas funcionalidades extra, como la gestión avanzada de usuarios y roles que se echa en falta en la versión software libre.

  • Instalación

La instalación básica de la herramienta es muy sencilla. Para ello, será suficiente con descargarla de http://luntbuild.javaforge.com y ejecutar en consola “java -jar LuntBuild-installer-1.5.6.jar” (en el caso de la versión evaluada), y se iniciará el proceso de instalación. Este proceso de instalación es una aplicación de escritorio basada en swing que consta de 13 pasos donde se nos permitirá configurar las diferentes opciones de instalación. Una vez finalizado y una vez instalado podremos ejecutar “bin/luntbuild.sh localhost 8080” (en nuestro caso hemos optado por desplegar LuntBuild en el puerto 8080) para poner en marcha la herramienta.

 

Instalación de LuntBuild

  • Administración, gestión de proyectos

LuntBuild ofrece una interfaz de administración muy potente, por lo que sólo nos veremos obligados a acceder a ficheros de configuración para las opciones más avanzadas.

Aunque la documentación oficial es bastante completa (http://luntbuild.javaforge.com/manual/guide/manual.html), la interfaz resulta compleja y exige al administrador que esté familiarizado con los conceptos relacionados con la Integración Continua.

La herramienta permite la generación de copias de seguridad desde la propia interfaz web, aunque éstas no pueden ser automatizadas. Al igual que en el caso de Continuum, siempre podemos optar por la simple copia de seguridad de la base de datos de la aplicación.

Un factor negativo a destacar en nuestra evaluación ha sido la complejidad en la actualización a nuevas versiones, haciendo necesario la ejecución de scripts de migración entre versiones.

  • Seguridad

La herramienta soporta gestión de usuarios, pero sólo admite un conjunto de roles predefinidos, por lo que tiene un mecanismo sencillo pero poco flexible. No admite la gestión de permisos basados en proyectos.

Por otro lado, para muchas de las opciones de seguridad nos hemos visto obligados a acceder a complejos ficheros de configuración como el situado en la ruta /WEB-INF/applicationContext.xml.

  • Integración con sistemas externos

LuntBuild ofrece un mecanismo de extensión muy sencillo, basado en expresiones OGNL (Object-Graph Navigation Language) que a su vez pueden invocar a nuevos plugins. Este mecanismo de extensión, aunque es restrictivo, permite inyectar comportamientos de forma sencilla. Por otro lado, al igual que ocurre con Continuum, la definición de mecanismos de testeo, bugtracker, validación , etc., depende de la correcta configuración de plugins report y build en los ficheros pom.xml de los proyectos.

La herramienta tiene soporte para los principales sistemas de control de versiones como Subversion, CVS, SourceSafe, StarTeam, etc… no dependiendo su integración de la definición del SCM del pom.xml en proyectos Maven, como sí ocurría en el caso de Continuum.

  • Tipos de proyectos

LuntBuild soporta proyectos en formato Maven, Ant, Shell scripts y Rake.

  • Facilidad de uso

Nos encontramos ante una herramienta con una interfaz potente, pero poco usable e intuitiva y carente de una adecuada documentación en linea. Por ello impone una curva de aprendizaje lenta.

Por otro lado, la documentación oficial es suficientemente completa, pero de nuevo resulta compleja para personal sin experiencia en este tipo de herramientas.

  • Estabilidad

Nos encontramos de nuevo ante un software muy estable; a continuación se detallan las últimas versiones liberadas de la plataforma:

LuntBuild 1.6

Julio 2008

LuntBuild 1.5

Agosto 2007

LuntBuild 1.4

Julio 2006

Por otro lado, el sistema permite la gestión de hilos de compilación y contempla compilación distribuida, lo que mejora su estabilidad en entornos con una gran carga. En este aspecto dispone de mejores características que Continuum.

  • Conclusiones sobre LuntBuild

Esta herramienta es muy completa, ofreciéndonos en un solo producto muchas de las funcionalidades necesarias, y dispone de la posibilidad de integración con multitud de sistemas externos. Quizás el principal factor negativo es una gran complejidad de uso para usuarios con poca experiencia en sistemas de Integración Continua y algunas funcionalidades extra que sería deseables y que solo están disponibles en la versión comercial. En cualquier caso, podemos considerarla una excelente herramienta.