Plugins Imprescindibles para Jenkins

Hola, hoy quiero hablar un poco acerca de uno de los proyectos que personalmente más me gustan: Jenkins. Soy seguidor de este server de integración continua, desde que tenía otro nombre (Hudson) y luego fue renombrado (hablé acerca del tema en otro post).
Para los que no lo conocen, se trata de un Servidor de Integración Continua, muy poderoso (prácticamente el más usado a nivel mundial) y además open-source y con una comunidad muy activa (tienen releases semanales).
Para comenzar no me parece mal contarles acerca de algunos plugins que creo que son muy interesantes y hasta imprescindibles, si queremos montar uno de estos servers para tener mayor control en la construcción de proyectos JAVA (inicialmente, más adelante les voy a contar acerca de como construir proyectos .NET también). Voy a obviar los más conocidos (plugins de reportes de cobertura, PMD, CPD, etc.):

  • ThinBackup Plugin: Este plugin sirve para programar de forma automática la tarea de hacer backup de la configuración de nuestro servidor. Obviamente se pueden hacer backups manuales en cualquier momento, y también recuperar cualquiera de los creados previamente. Tiene muchas cosas interesantes, como por ejemplo la posibilidad de armar backups incrementales, backups full, borrar backups viejos, etc. Muy completo y necesario para quedarnos tranquilos de no perder toda la configuración que tanto tiempo nos lleva armar.
  • Build Failure Analyzer: Este plugin es bastante reciente, pero lo encuentro muy útil. Permite definir patrones recurrentes en los logs de builds que fallan, definiendo el nombre de la falla y una descripción. De a poco podemos ir armando una base de conocimientos de fallas de build, lo que le sirve a los desarrolladores para identificar rápidamente la causa de un fallo. Está bueno tenerlo instalado cuanto antes, entonces de a poco vamos armando una buena base de fallas conocidas.
  • Configuration Slicing Plugin: Este plugin lleva unos años, pero es muy útil a medida que la cantidad de jobs de construcción va creciendo y se torna dificil de manejar. Este plugin permite cambiar algunas opciones de configuración de los jobs de forma masiva, evitándonos tener que ir uno por uno, cambiando lo que queremos en cada job. Imprescindible.
  • Contitional Build Step Plugin: Este plugin es muy poderoso y muy útil si queremos automatizar tareas. Lo que hace es básicamente darnos la opción de partir nuestro job en múltiples pasos los cuales son opcionales, basados en la evaluación de una condición, las cuales se pueden elegir desde varias disponibles, como por ejemplo, la evaluación del valor de una variable de entorno, de un parámetro, etc. Muy útil en la medida de que nos animemos a hacer cosas cada vez más complejas.
  • Monitoring: Este plugin implementa Java Melody en nuestro servidor. Java Melody, es una de las plataformas de monitoreo de aplicaciones Java más completas que conozco, del mundo open-source. Permite monitorear prácticamente todos los aspectos interesantes de nuestro server (uso de memoria, cpu, disco, etc.) para encontrar y diagnosticar problemas. Muy recomendable.
  • Sectioned View Plugin: Este plugin si bien no es tán útil al principio, a medida que empezamos a tener una gran cantidad de job, se vuelve necesario. Permite definir "Secciones" en las cuales mostrar los jobs que machean una expresión regular. Es una buena manera de categorizar los jobs, por proyectos / clientes / etc.
  • Shelve Project Plugin: Este plugin es interesante para los que no quieren perder absolutamente nada de información: permite hacer un backup y eliminar los jobs viejos que no se usan más. También se puede volver a recuperar el job de una forma fácil y simple. Lo interesante es que almacena el job en formato comprimido, para ahorrar espacio en disco.
  • Validating String Parameter Plugin: Cuando nuestros jobs comienzan a ser más complejos (sobre todo cuando armamos jobs que hacen tareas automatizadas), seguramente vamos a necesitar parámetros cada vez más complejos. Este plugin permite agregar condiciones de validación a los parámetros, para evitar cometer errores al ingresarlos. Por ejemplo, si necesitamos una url de svn como parámetro, podemos definir una expresión regular simple, para evitar que se ingresen urls mal formadas. Permite poner mensajes de validación específicos por cada validación.
Bueno, con estos tienen un buen vistazo de algunos plugins no tan conocidos quizá, pero no por eso dejan de ser bastantes útiles. Quedaron muchos otros fuera del análisis, pero bueno, los veremos más adelante.
Conocen algún otro que les parezca imprescindible tener?
Nos vemos en el próximo post.

PD: A propósito, hacía tiempo que no tiraba algo al blog, prometo volver a la carga! ... de paso para los que visitaban antes el sitio, hice un rediseño para hacerlo más amigable, espero que les haya gustado!