Configurar el registro cerrado para proyectos Spring Boot con Github y Jenkins

    Introducci贸n

    Uno de los mayores desaf铆os que enfrentan los desarrolladores es ser 谩giles o, en otras palabras, poder entregar lanzamientos estables de los productos a tiempo. Con cada Sprint, necesitamos ofrecer nuevas funciones, Libre de errores caracteristicas.

    驴Y por qu茅 molestarse en construir, probar e implementar manualmente cuando podr铆amos tener un proceso automatizado? Un proceso que verificar铆a cada fragmento de c贸digo antes de fusionarlo en la rama estable y luego implementarlo. Por ejemplo, implementarlo en una m谩quina de prueba lista para el equipo de control de calidad.

    Hay muchas herramientas para implementar este proceso de CI / CD, pero nos quedaremos con una incre铆ble herramienta de c贸digo abierto, Jenkins.

    Jenkins es un servidor de automatizaci贸n. Ayuda a automatizar la construcci贸n, prueba e implementaci贸n de su aplicaci贸n. Jenkins apoya a Git y Maven, que ser谩n nuestras estrellas invitadas en este mini proyecto.

    Este art铆culo lo guiar谩 a trav茅s de la configuraci贸n del proceso de Jenkins para que se active cada vez que se realice una confirmaci贸n. Luego, nos aseguraremos de que nuestro repositorio de GitHub est茅 configurado correctamente para este escenario. Por 煤ltimo, haremos una peque帽a prueba para comprobar que todo funciona correctamente.

    Prerrequisitos

    Para que pueda seguir este tutorial, es necesario configurar algunas cosas peque帽as.

    • Un servidor de Jenkins. Puede usar DigitalOcean para crear una gota con Jenkins listo para usar. Deber铆a tomar menos de 5 minutos.
    • Un repositorio de GitHub. Tenga en cuenta que puede utilizar un proveedor de alojamiento de control de c贸digo fuente siempre que le brinden la posibilidad de agregar Webhooks.
    • Una aplicaci贸n Spring Boot con pruebas. Si a煤n no tienes uno, puedes clonar esta repositorio.

    Configuraci贸n de Jenkins

    Entonces, despu茅s de crear la gota de Jenkins, hay algunos pasos que debe seguir para que la m谩quina est茅 en funcionamiento.

    Conect茅monos a nuestra gota reci茅n creada y preparemos nuestro entorno. Comenzaremos ejecutando algunos comandos en la terminal:

    $ ssh [email聽protected]_VM_IP
    

    Se le pedir谩 que cree su contrase帽a de Jenkins. Use una contrase帽a segura y reinicie su servicio Jenkins:

    $ systemctl restart jenkins
    

    Ahora puede acceder a su servidor Jenkins en la siguiente direcci贸n http://YOUR_VM_IP:8080 y deber铆a ver algo como esto. Despu茅s de eso, ser谩 redirigido a la p谩gina de inicio de sesi贸n:

    隆Y voil脿, estamos listos!

    El nombre de usuario predeterminado es admin, y la contrase帽a es la que cre贸 al principio.

    Antes de crear nuestro primer proyecto, vayamos a Administrar Jenkins ~> Administrar plugins e instalar GitHub Pull Request Builder.

    Ahora ve a Administrar Jenkins ~> Configurar sistema configurar el servidor de GitHub. Vamos y haga clic en Nuevo art铆culo en la esquina superior izquierda de la pantalla:

    Ahora, escriba un nombre para su nuevo proyecto y seleccione Proyecto Freestyle:

    Necesitamos especificar algunos par谩metros para el proyecto, para que Jenkins sepa qu茅 confirmaci贸n debe usar para la parte de compilaci贸n y prueba.

    Lo primero que debemos hacer es especificar la URL del proyecto, debajo de la General pesta帽a y proyecto de GitHub.

    Debajo Gesti贸n de c贸digo fuente pesta帽a, seleccione Git. Despu茅s de ingresar la URL del repositorio y sus credenciales, en Ramificado para compilar, use ${ghprbActualCommit}.

    Clickea en el Avanzado… y agregue los siguientes detalles:

    • Nombre: origin
    • Refspec: +refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*

    Nota: Este valor es necesario para compilar solo las solicitudes de extracci贸n.

    Una vez que hayamos configurado nuestro repositorio, debemos especificar cu谩ndo se activar谩 este trabajo. Para eso, ve a Construir disparadores pesta帽a y seleccione GitHub Pull Request Builder.

    En primer lugar, seleccione las credenciales configuradas anteriormente y marque Usar GitHub Hooks para activar la compilaci贸n. Ahora, agregue un Actualizar el estado de confirmaci贸n durante la compilaci贸n activarlo y configurarlo como en la imagen:

    Agrega un Crear mensajes de estado disparador para SUCCESS, ERRORy FAILURE.

    Para el Construir fase agregaremos Invocar objetivos Maven de nivel superior con la siguiente configuraci贸n:

    • Versi贸n de Maven: la versi贸n de Maven que desee, se puede configurar desde Configuraci贸n del sistema
    • Metas – clean install -U
    • POM – pom.xml

    Hacer clic Salvar y terminamos!

    Configuraci贸n del repositorio de GitHub

    Hasta ahora hemos logrado configurar el flujo de trabajo de Jenkins, pero 驴qu茅 pasa con GitHub? Eso es lo que vamos a hacer ahora mismo.

    Ir Configuraciones en su p谩gina de repositorio y seleccione el Webhooks opci贸n del men煤 de la izquierda. Agregue un nuevo webhook con los siguientes detalles:

    Para el tipo de URL de carga 煤til http://YOUR_VM_IP:8080/ghprbhook/ y seleccionaremos Solicitudes de extracci贸n como la opci贸n de activaci贸n. El tipo de contenido debe ser application/json. Deje el campo Secreto vac铆o y Salvar.

    Prueba del flujo de trabajo

    El momento que est谩bamos esperando. Cree una nueva rama, env铆ela a GitHub y luego cree una solicitud de extracci贸n. Tan pronto como creemos la solicitud de extracci贸n, se activar谩 un trabajo en Jenkins:

    Pronto, aparecer谩 un enlace de Detalles en la p谩gina de la solicitud de extracci贸n. Si hace clic en el enlace, ver谩 una p谩gina como esta:

    Ahora si vamos al Salida de consola podemos ver que todas las pruebas han pasado:

    [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
    ...
    Finished: SUCCESS
    

    Por el bien de este tutorial, har茅 otra confirmaci贸n con una prueba fallida para ver que funciona correctamente. Y el resultado:

    [ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0
    ...
    Finished: FAILURE
    

    Aqu铆, hemos implementado con 茅xito un registro cerrado para proyectos de Spring Boot, utilizando GitHub y Jenkins.

    Conclusi贸n

    Se espera que los ingenieros de software proporcionen soluciones sin errores a sus clientes. Con una l贸gica compleja, es primordial probar el software y garantizar las verificaciones y los casos de prueba para asegurarse de que el proyecto sea estable.

    En este art铆culo, hemos implementado un registro cerrado para proyectos Spring Boot, usando GitHub y Jenkins, para asegurarnos de pasar las verificaciones en el c贸digo que enviamos.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *