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.

     

    Rate this post
    Etiquetas:

    Deja una respuesta

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