Pipelines en Gitlab, el camino hacia el CI/CD (parte I)

En esta entrada se dará una visión general sobre qué es y cómo configurar un Gitlab Runner. También se explicará qué es y cómo configurar un pipeline. Por último, se enseñará un pequeño proyecto-ejemplo para poner en práctica los conocimientos adquiridos.

En una entrada anterior explicamos la teoría del CI/CD, en qué consiste y para qué sirve. La teoría está bien, pero no hay nada mejor para terminar de asimilar la teoría que un buen ejemplo de uso práctico.

Hemos elegido Gitlab para este fin ya que, en nuestra opinión, es muy fácil de instalar, configurar, mantener y visualmente es muy sencillo de comprender.

Nota: Este artículo no cubrirá el proceso de instalación de Gitlab en sí. Damos por hecho que el público al que este artículo está dirigido dispone de una instalación de Gitlab o, en su defecto, cuenta con los conocimientos y habilidades suficientes para llevar al cabo la instalación por su cuenta.

Nota: Todas las explicaciones en este artículo se harán partiendo de la premisa de que se dispone de una instalación de Gitlab CE 12.8, es decir, la última versión gratuita de Gitlab disponible en este momento. No se mencionarán características disponibles únicamente en la versión de pago.

Nota: Los ejemplos están basados en un Debian Buster (10).

Nota: Se da por hecho que el público al que este artículo está dirigido tiene unas nociones básicas sobre el uso de Git y Gitlab: entiende lo que es un grupo, un proyecto, un commit, etc…

Sigue leyendo

Integración continua y despliegue continuo

En esta entrada se definirán varios conceptos básicos relacionados con la automatización de las tareas que ejecutamos antes de desplegar nuestro código, así como la automatización de los despliegues en sí. También se describirán las metodologías más comunes que permiten unir estos conceptos y usarlos como un conjunto.

Integración continua

Durante el proceso de desarrollo de nuestro proyecto, sobre todo cuando en el mismo participa un número elevado de personas, pueden existir una serie de tareas que queramos ejecutar para facilitar el trabajo en equipo y mantener el buen estado del proyecto. Estas tareas pueden ser de cualquier tipo, desde una simple comprobación del código en busca de errores de sintaxis o de formateo incorrecto, hasta la ejecución de pruebas unitarias, pasando por el análisis estático y/o dinámico del código en busca de posibles vulnerabilidades, etc…

Sigue leyendo