Integración continua e implementación continua en GitLab

Hector Bustillos | 31 de julio, 2020

Es casi imposible evitar los errores cuando se desarrolla software, pero hay formas de disminuir la probabilidad de que ocurran. GitLab incluye herramientas que facilitan el desarrollo de software al comprobar constantemente el código y asegurarse de que todo va bien. A continuación se explica cómo conseguir un buen flujo de trabajo con GitLab.

La integración continua (CI) funciona empujando el código a una aplicación alojada en un repositorio Git. En cada push, la aplicación ejecuta un canal de scripts para construir, probar y validar los cambios de código antes de fusionarlos con la rama principal. La implementación continua (CD) va un paso más allá que la CI,  desplegando la aplicación en un servidor de producción en cada push, en la rama por defecto del repositorio.

GitLab está construido con su propio y potente sistema de integración continua e implementación continua. Para configurar la CI/CD para un proyecto de GitLab, se debe colocar un archivo de configuración llamado gitlab-ci.yml en la raíz del repositorio. El archivo será ejecutado por el GitLab Runner, donde se realizará la construcción y prueba de la aplicación en cada push al repositorio.

El GitLab Runner es un proyecto de código abierto que se utiliza para ejecutar trabajos y enviar los resultados a GitLab. Este servicio se incluye con GitLab y se utiliza junto con él para ejecutar el script del canal desde la CI y la CD.

Implementación de la CI y la CD

Para empezar a implementar la CI/CD en su proyecto, tendrá que empujarla a GitLab y añadir el archivo de configuración mencionado anteriormente. El archivo contendrá scripts agrupados en trabajos, y juntos componen un canal. He aquí un ejemplo simple de cómo se ve este archivo,

Screen Shot 2020-07-31 at 18.40.27

En este ejemplo, el atributo before_script instalará las dependencias de la aplicación antes de ejecutar nada. Luego, un trabajo llamado run-tests ejecutará el script y mostrará la versión Ruby del sistema actual. Ambos componen un canal que se activa con cada envío a cualquier rama del repositorio.

Hay muchos atributos y scripts diferentes que puede ejecutar. El propósito del CI es probar todo antes de hacer cualquier fusión entre ramas y automatizarlo. 

Organizar los trabajos por etapas

El propósito de un trabajo es ejecutar scripts y, a veces, esos scripts necesitan tener un orden de ejecución, ahí es donde entran las etapas . Para explicar mejor cómo funcionan las etapas, aquí hay un ejemplo:

Screen Shot 2020-07-31 at 18.41.20

La etapa se define por trabajo y se apoya en las etapas que se definen globalmente. Esto permite agrupar los trabajos en diferentes etapas, y los trabajos de la misma etapa se ejecutan en paralelo. Se garantiza que la etapa .pre será siempre la primera etapa de un canal y que .post será siempre la última etapa de un canal. En el último ejemplo, los trabajos se ejecutarán cronológicamente desde el trabajo .pre hasta el .post.

Se puede definir el orden de ejecución de las cosas. Si la integración o la implementación continua van mal durante el camino, GitLab se lo notificará. Puede arreglar esos errores antes de hacer cualquier fusión de la que se pueda arrepentir.

Una gran ventaja de contar con el GitLab CI/CD es que no solo permite ejecutar estos scripts, sino que también proporciona una interfaz que muestra lo que está sucediendo durante la ejecución de los scripts en el archivo de configuración. Esta es una captura de pantalla de cómo se ve la pestaña CI/CD cuando se hace un push al repositorio,

Desde la construcción hasta la implementación, puede ver todos los registros de lo que está pasando con su CI/CD. Así, si algo falla, sabrá exactamente qué ha fallado. Eso sí, solo si tiene una buena cobertura de pruebas en su proyecto.

Otra gran característica de GitLab CI/CD es que cuando se implementa, en cada push realizado le mostrará si las pruebas en de CI pasaron, están en ejecución o fallan.

screenshoot_2

Finalmente…

Hay un montón de atributos y scripts diferentes que puede ejecutar. Para empezar con GitLab CI/CD, necesita conocer la sintaxis del archivo de configuración .gitlab-ci.yml y sus atributos. Para más información y documentación, visite Introducción a la CI/CD con GitLab  Referencia de configuración de canales de GitLab CI/CD

Si tiene alguna pregunta, contácteme a hbustillos@nearsoft.com.

 

Contenido

Compartir Artículo

Artículos Destacados