Si deseas im­ple­me­n­tar el método de in­te­gra­ción continua (CI por sus siglas en inglés), deberías utilizar una he­rra­mie­n­ta de CI sencilla pero potente. Jenkins es buen ejemplo. Este software de código abierto ofrece, sobre todo, a través de plugins, una gran variedad de po­si­bi­li­da­des para diseñar un proceso de in­te­gra­ción continua más eficiente.

Jenkins está basado en Java y, por lo tanto, funciona en cualquier pla­ta­fo­r­ma. Dado que el software se su­mi­ni­s­tra junto con Winston —un servlet mi­d­d­le­wa­re— no requiere ningún servidor adicional, como por ejemplo Tomcat. Para que puedas trabajar de manera eficiente con Jenkins, este tutorial muestra en primer lugar cómo instalar y co­n­fi­gu­rar el programa e incluye un ejemplo de cómo dar los primeros pasos en un proyecto.

In­s­ta­la­ción del software

Jenkins está di­s­po­ni­ble en numerosas versiones. Puedes optar por la Weekly Version, para la que el software publica una ac­tua­li­za­ción a la semana o elegir la versión Long Term Dupport (LTS), en cuyo caso se publica una versión estable cada tres meses. Estas dos opciones te permiten a su vez elegir entre di­fe­re­n­tes la­n­za­mie­n­tos: además de los paquetes de in­s­ta­la­ción para los sistemas ope­ra­ti­vos ha­bi­tua­les (Windows, macOS, Ubuntu/Debian), también existe una versión para Docker así como para archivo web (.war).

Nota

En nuestro ejemplo uti­li­za­mos Windows Installer en la versión 2.121.1 (LTS) para Windows 7. Si utilizas otra versión u otro sistema operativo, el proceso de co­n­fi­gu­ra­ción puede ser diferente. Dado que Jenkins está basado en Java, deberás tener instalada su versión actual.

Windows Installer te guía sin co­m­pli­ca­cio­nes a través de la in­s­ta­la­ción. Solo tienes que indicar el di­re­c­to­rio de in­s­ta­la­ción deseado y comenzar el proceso.

Co­n­fi­gu­ra­ción de Jenkins

La in­s­ta­la­ción solo debería durar unos segundos. De inmediato, el programa abre el navegador que tengas co­n­fi­gu­ra­do como estándar y accede a localhost:8080. Aquí se encuentra la interfaz web con la que puedes manejar Jenkins. Primero, sin embargo, tienes que acceder al archivo ini­tia­lA­d­mi­n­Pa­s­s­wo­rd di­s­po­ni­ble en el di­re­c­to­rio del software, en la carpeta Secrets. Este archivo, que se puede abrir con cualquier editor de textos, contiene una co­n­tra­se­ña generada por Jenkins. Copia la secuencia de ca­ra­c­te­res e in­sé­r­ta­los en el campo co­rre­s­po­n­die­n­te de la interfaz web.

Ahora puedes comenzar con la co­n­fi­gu­ra­ción de Jenkins. El asistente de co­n­fi­gu­ra­ción te co­n­su­l­ta­rá si deseas elegir los plugins o si prefieres utilizar una co­n­fi­gu­ra­ción estándar que ya cuente con todas las ex­te­n­sio­nes re­le­va­n­tes. Si utilizas Jenkins por primera vez, es muy probable que esta última opción sea la más adecuada. Además, si así lo deseas, más tarde podrás instalar plugins sin ningún problema.

A co­n­ti­nua­ción, crea un primer usuario. Si al principio vas a trabajar solo en un proyecto, puedes saltarte este paso y utilizar Jenkins si­m­ple­me­n­te como ad­mi­ni­s­tra­dor (después podrás crear nuevos usuarios con di­fe­re­n­tes derechos en los ajustes del programa). El último paso de la co­n­fi­gu­ra­ción te permite in­tro­du­cir una URL de Jenkins. En el campo co­rre­s­po­n­die­n­te está indicado el localhost:8080. Si has instalado Jenkins en un servidor, lo que se re­co­mie­n­da es­pe­cia­l­me­n­te en un entorno pro­fe­sio­nal, introduce en este punto la ruta correcta al di­re­c­to­rio de Jenkins. Para terminar, almacena los datos in­tro­du­ci­dos y finaliza la co­n­fi­gu­ra­ción.

Consejo

Es posible realizar más ajustes a po­s­te­rio­ri en el menú de co­n­fi­gu­ra­ción de Jenkins.

Jenkins: in­tro­du­c­ción a su fu­n­cio­na­mie­n­to

Al principio, Jenkins presenta un entorno de trabajo co­m­ple­ta­me­n­te vacío. Para iniciar un proyecto de CI debes crear una nueva tarea, bien a través de la in­di­ca­ción resaltada en el centro de la ventana (“create new Jobs”) , bien a través de la opción de menú “New Item”, situado en la parte izquierda.

En el siguiente paso debes dar una de­sig­na­ción al encargo y se­le­c­cio­nar qué se desea conseguir:

  • Proyecto de estilo libre: Jenkins conecta un sistema de gestión de versiones con sistema de build.
  • Pipeline: aquí se crea un cauce a través de varios agentes de co­m­pi­la­ción.
  • Proyecto mu­l­ti­co­n­fi­gu­ra­ción: si tienes un proyecto que requiere di­fe­re­n­tes po­si­bi­li­da­des de co­n­fi­gu­ra­ción, p. ej. porque utilizas diversos entornos de prueba, elije esta opción.
  • Carpeta: una carpeta es un co­n­te­ne­dor en el que puedes almacenar objetos anidados.
  • Or­ga­ni­za­ción GitHub: esta opción examina todos los re­po­si­to­rios de una cuenta en GitHub.
  • Mu­l­ti­bra­n­ch Pipeline: puedes crear di­re­c­ta­me­n­te varias ca­na­li­za­cio­nes.

Jenkins está enfocado pri­n­ci­pa­l­me­n­te a proyectos freestyle, por lo que en nuestro ejemplo también hemos creado uno de este tipo.

En la siguiente página se muestran numerosas po­si­bi­li­da­des de co­n­fi­gu­ra­ción. El proyecto se configura en seis ca­te­go­rías. Su­po­n­ga­mos que estás es­cri­bie­n­do un programa en Java y deseas utilizar in­te­gra­ción continua. En primer lugar hay que ocuparse de la co­n­fi­gu­ra­ción del origen del código fuente. El programa de ejemplo se encuentra en un re­po­si­to­rio Git de tu terminal (si bien es posible conectar Jenkins, por ejemplo, con GitHub). Introduce, por tanto, el nombre de dicho di­re­c­to­rio en la opción “Git”. También puedes trabajar con una su­b­ve­r­sión.

En el siguiente paso, elige el di­s­pa­ra­dor de ejecución o build trigger, con el que se determina las si­tua­cio­nes en las que Jenkins debe iniciar un build. Esto es posible, p. ej., a través de un script especial de otro programa, una vez se haya ejecutado otro build o de manera regular en de­te­r­mi­na­dos in­te­r­va­los de tiempo. También puedes des­en­ca­de­nar un build ma­nua­l­me­n­te, como también haremos en el ejemplo.

El entorno de ejecución, que Jenkins te permite co­n­fi­gu­rar, incluye varias opciones en lo que a los builds respecta, por ejemplo, ¿debe in­te­rru­m­pi­r­se el proceso cuando este se bloquea? o ¿se desea imprimir una marca de tiempo en la consola? Ninguna de las opciones es obli­ga­to­ria.

Fi­na­l­me­n­te se llega a la opción de ejecutar o build: aquí puedes de­te­r­mi­nar con qué se va a construir tu programa. Dado que en la selección estándar de plugins ya se han integrado co­ne­xio­nes a Ant y Gradle, puedes elegir uno de estos programas. Sin embargo, también es posible recurrir a líneas de comandos sencillas. Elige la opción para comandos en lote y deja que el programa compile:

javac MyProgram.java
java MyProgram

A co­n­ti­nua­ción, Jenkins te da la po­si­bi­li­dad de llevar a cabo acciones después del build. La rea­li­za­ción de pruebas es un aspecto muy im­po­r­ta­n­te: utiliza la opción “Publish JUnit test result report” para conectar Jenkins con JUnit e integrar re­su­l­ta­dos del marco de pruebas para Java. Además, con los plugins adi­cio­na­les puedes conectar Jenkins con otros entornos de prueba, pudiendo incluso realizar pruebas au­to­má­ti­cas. Asimismo, puedes recibir in­fo­r­ma­ción por email acerca del estado de un build o hacer que otros la reciban. Fi­na­l­me­n­te solo tienes que guardar la in­fo­r­ma­ción: ya habrás creado tu primera tarea.

Consejo

Si deseas instalar plugins, es necesario reiniciar el servidor Jenkins. Para esto tienes que cerrar sesión y a co­n­ti­nua­ción in­tro­du­cir la URL en la barra de di­re­c­cio­nes del navegador sa­fe­Re­s­ta­rt (p. ej. localhost:8080/sa­fe­Re­s­ta­rt). Cuando vuelvas a iniciar sesión podrás confirmar que deseas reiniciar.

Cada uno de los proyectos tiene una subpágina en Jenkins. Aquí puedes iniciar un build, volver a modificar los ajustes y comprobar el estado. En la página Status, Jenkins te muestra el historial de build. ¿Finalizó el último con éxito? El programa marca los éxitos con puntos azules y señala en rojo los errores que, según la in­te­gra­ción continua, hay que subsanar de inmediato. Aquí también puedes ver si hay un build en proceso. Haciendo clic en el número de build se accede a una página detallada en la que se puede vi­sua­li­zar la salida de la consola.

En el panel de control de Jenkins puedes ver todos los proyectos en los que estás tra­ba­ja­n­do. Aquí, el programa también marca con colores el estado del proyecto. Además, se ofrece in­fo­r­ma­ción sobre la es­ta­bi­li­dad del build uti­li­za­n­do la si­m­bo­lo­gía de los informes me­teo­ro­ló­gi­cos: gracias a la in­fo­r­ma­ción es­ta­dí­s­ti­ca se puede ver la es­ta­bi­li­dad media de las eje­cu­cio­nes del proyecto. Si más del 80 % se han llevado a cabo co­rre­c­ta­me­n­te, aparece un sol. Por debajo de este valor la in­di­ca­ción me­teo­ro­ló­gi­ca será cada vez peor.

V568cAbz2ls.jpg Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.
Nota

Jenkins te da muchas más po­si­bi­li­da­des de adaptar el programa a tus co­n­di­cio­nes de trabajo y, de esta forma, si­m­pli­fi­car el proceso de in­te­gra­ción continua. En­co­n­tra­rás una solución adecuada para la mayoría de si­tua­cio­nes, es­pe­cia­l­me­n­te gracias a los numerosos plugins.

Ir al menú principal