A pesar de enfrentarse a una mayor competencia, Jenkins sigue siendo uno de los servidores de integración continua más populares. Se creó durante la infame división de la comunidad de Hudson, que se produjo después de que el gigante del software Oracle se hiciera con el control de Hudson, de código abierto, en un movimiento que inflamó a la comunidad de desarrolladores e incendió Internet con un acalorado debate.
La buena noticia para los desarrolladores de todo el mundo que creen en la importancia de mantener el software de código abierto fuera de las manos de las grandes corporaciones es que en la posterior batalla de Hudson contra Jenkins, fue Jenkins el que salió victorioso.
Parte de la razón detrás de esto fue el gran número de excelentes plugins de Jenkins que han sido desarrollados por la comunidad de Jenkins. En la actualidad, Jenkins cuenta con más de 1.500 plugins que ayudan a los desarrolladores a automatizar grandes partes del desarrollo de proyectos. Estos plugins pueden ayudar con tareas que van desde ayudar con la entrega continua, transferir archivos de un proyecto a otro, mostrar los proyectos de Jenkins en JIRA, y así sucesivamente.
Dado que cada uno de estos plugins resuelve diferentes problemas, no es una tarea fácil elegir los mejores plugins de Jenkins. Así que en lugar de suscitar la controversia, en este artículo, me propongo detallar algunos de los plugins más útiles que ayudan a los desarrolladores a ahorrar tiempo, además de hacerles la vida más fácil.
Con el fin de ampliar el atractivo de este artículo, he elegido una mezcla de plugins, algunos de los cuales serán atractivos para los desarrolladores individuales y otros que serán útiles para los grandes equipos de dev.
- Job DSL
Un problema que muchos desarrolladores que dependen de Jenkins para trabajar en múltiples trabajos habrán experimentado es tener que configurar repetidamente cada nuevo trabajo que inician. Esto no sólo consume mucho tiempo (teniendo en cuenta que muchos programadores a tiempo completo trabajan en cientos de trabajos al año), sino que también puede hacer que su trabajo se sienta realmente monótono.
El plugin Job DSL de Jenkins permite a los programadores utilizar Groovy para definir trabajos y configurar un conjunto común de elementos para ellos. El plugin luego mantiene estos scripts y actualiza la información de los trabajos automáticamente. Esto permite a los programadores crear plantillas estandarizadas utilizando el Lenguaje Específico de Dominio (DSL), lo que hace que la configuración de nuevos proyectos sea una brisa.
2. Plugin Generador de Trabajos
Para los gestores de proyectos y los equipos de desarrollo que están involucrados en el desarrollo de proyectos a gran escala, el seguimiento del progreso de los trabajos puede ser una pesadilla en el mejor de los casos. El plugin Jenkins Job Generator permite a los gestores de proyectos a cargo de un pipeline Jenkins en particular, autorizar a los desarrolladores de su equipo a crear nuevas plantillas de trabajo que luego pueden ser utilizadas para iniciar nuevos proyectos/ramas de desarrollo.
Aunque es posible hacer esto manualmente, una vez más esta tarea puede consumir mucho tiempo, especialmente si su proyecto tiene múltiples pipelines. La ventaja del plugin generador de trabajos sobre el plugin Job DSL anterior es que no requiere que los programadores sepan Groovy.
3. Plugin de rendimiento
Esta es una herramienta realmente genial para que los desarrolladores jueguen con ella. Permite a los desarrolladores capturar informes de toda una serie de herramientas de pruebas que incluyen JUnit, JMeter, Lago de Twitter y Taurus. Puedes ver la información sobre el rendimiento de tu proyecto en Jenkins a través de tablas y gráficos. Este es un gran ejemplo de un plugin de gráficos para Jenkins.
4. GitHub/GitLab Pull Request Builder
Este plugin Git muy popular para Jenkins permite a los desarrolladores automatizar fácilmente la revisión del código. Al iniciar un pull request, el plugin recuperará la fuente y los resultados de la construcción para que los desarrolladores puedan ver rápidamente si su código es correcto.
Este gran plugin también permite a los desarrolladores iniciar la fusión automática siempre que el código pase la revisión.
5. Plugin de JIRA
Lanzado en diciembre de 2016, el plugin de JIRA hace más o menos lo que dice en la lata. Permite a los desarrolladores integrar JIRA en Jenkins. Muchos equipos de desarrollo utilizan JIRA bastante, por lo que ser capaz de ver Jenkins a través de JIRA ayuda a agilizar el proceso de desarrollo.
6. Kubernetes Plugin
Para aquellos equipos de desarrollo que están ejecutando múltiples proyectos al mismo tiempo, Jenkins puede ser frustrante a veces porque no ofrece realmente una gran escalabilidad del servidor. Este problema se resuelve con el Kubernetes Plugin que permite a aquellos desarrolladores que utilizan Kubernetes automatizar el proceso de escalado de la ejecución de los esclavos de Jenkins en el entorno Kubernetes.
Para aquellos desarrolladores que están utilizando Docker Swarm entonces Jenkins Self-Organizing Swarm Modules Plugin le permitirá añadir escalabilidad a Jenkins de la misma manera. Una vez instaladas, ambas versiones le permitirán continuar con su trabajo en Jenkins sin tener que preocuparse por los problemas de escalabilidad.
7. Plugin Build Pipeline
Aunque la integración continua es una gran manera de desarrollar proyectos, también plantea una serie de desafíos. Hacer un seguimiento de todos los aspectos de la progresión del trabajo, incluyendo la garantía de calidad, puede ser todo un reto cuando se trata de proyectos complejos de varias capas.
El plugin de Build Pipeline de Jenkins permite a los gestores de proyectos crear una cadena de trabajos conectados para que puedan tener una visión mucho más clara de todas las etapas del pipeline del proyecto. El plugin permite a los gestores decidir qué pasos pueden ser automatizados o requieren una intervención manual. Este magnífico plugin realmente permite a los desarrolladores tomar el control total de sus proyectos, por lo que es utilizado por tantos equipos de desarrollo de software.
8. SCM Sync Configuration Plugin
Los datos de configuración perdidos han quitado el sueño a muchos gestores de proyectos. No sólo se necesita tiempo para poner en orden, pero es totalmente prevenible también. De la misma manera que el código puede ser respaldado en los repositorios, con la ayuda de este práctico plugin, los archivos de configuración de Jenkins también pueden serlo.
Este plugin de configuración SCM Sync permite la copia de seguridad automatizada de archivos de configuración a un repositorio SCM. No sólo eso, sino que este plugin también hará un seguimiento de cualquier cambio dando así a los administradores una visión clara de cualquier alteración. Es una popular herramienta de copia de seguridad de Jenkins que la caja de herramientas de cualquier desarrollador de Jenkins debe contener.
9. Jenkins Maven plugin
Maven es muy querido por proporcionar un diseño de construcción de proyectos estándar fácil de usar. Esto ayuda a los desarrolladores a ahorrar tiempo al inicio de los proyectos al permitirles saltar directamente en el extremo profundo y no tener que preocuparse por este aspecto de familiarizarse con el proyecto.
Este plugin permite a Jenkins monitorear las construcciones de Maven para permitir el archivo automático de informes y ayudar con las construcciones de módulos paralelos o incrementales, etc. Es fácil de configurar y no requiere mucho en la configuración de Jenkins.
10 . Jenkins Subversion plugin
Con un gran número de desarrolladores que todavía utilizan Apache Subversion, había una necesidad abrumadora de un plugin de Jenkins para integrar los dos. Este plugin monitorizará los cambios y desencadenará nuevas construcciones como y cuando sea necesario, así como actualizará automáticamente el espacio de trabajo para que esté listo para iniciar la nueva construcción.