Jenkins es una aplicación que supervisa ejecuciones de trabajos repetidos, como por ejemplo la construcción de un proyecto de software y posterior ejecución de una serie de pruebas automáticas.
Está basado en el proyecto Hudson, creado por Kohsuke Kawaguchi, que trabajaba en Sun. Unos años después de que Oracle comprara Sun, la comunidad de Hudson decidió renombrar el proyecto a Jenkins, migrar el código a Github y continuar el trabajo desde ahí. No obstante, Oracle ha seguido desde entonces manteniendo y trabajando en Hudson.
Cuando trabajamos con Jenkins hay múltiples formas de organizar el flujo de trabajo. Una posibilidad es programar una tarea en la que se compruebe el repositorio de control de versiones cada cierto tiempo. Jenkins soporta herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase. Más tarde, cuando un desarrollador suba su código al control de versiones, Jenkins se encargará de construir ese software (hacer la build) y, si todo ha ido bien, de ejecutar otras tareas que le hayamos indicado, como pueden ser la instalación de esa versión de software en un determinado entorno, y la ejecución de una serie de pruebas que nos indicarán que la nueva versión de software funciona correctamente.
Si el resultado no es el esperado en alguno de los pasos o hay errores, Jenkins notificará al equipo de desarrollo, al equipo de QA, o a quién le hayamos indicado, por email o cualquier otro medio (hipchat, gtalk, twitter), para que lo solucione lo antes posible.
Jenkins tiene además otras características por las que es muy interesante y prácticamente un estándar en la industria del desarrollo de software. Desde Jenkins es posible ver el resultado de los tests, generar y visualizar la documentación del proyecto o incluso pasar una versión estable del software a un determinado entorno para ser probado o hacerle una demostración al cliente, o incluso pasar esa versión automáticamente a producción.
Otra de las ventajas es que posee un historial de cambios realizados por build o versión, saber quien lo realizo y cuales archivos fueron manipulados, y sus comentarios al respecto.
Por si todo esto no fuera suficiente, se trata de una herramienta que se puede instalar en plataformas windows, linux o mac. Su instalación y posterior mantenimiento es muy sencillo, como es habitual con las herramientas desarrolladas en Java. No necesita ninguna base de datos. La interfaz es una interfaz web, desde la que accederemos a todos los controles y ajustes que necesitemos. No hay necesidad de ajustar manualmente ningún XML más, aunque si deseamos hacerlo, también podemos hacerlo así.
En definitiva, una herramienta que los equipos de calidad y testing deben conocer y manejar, y de la que próximamente iremos incluyendo más información.
1 comentario en «Jenkins. Servidor de integración continua gratuito»