En entradas anteriores en el blog de Klooid se abordó el uso de Gitlab como alojamiento de repositorios remotos. Una de las características que distingue a Gitlab entre su competencia es la integración de una herramienta CI/CD para desarrolladores.
¿Que es CI/CD?
Cuando hablamos de CI/CD tenemos que tomar en cuenta 3 términos: continuous integration, continuous delivery y continuous deployment. El término CI/CD engloba estos 3, sin embargo, no son dependientes unos de otros. En cambio, cada uno es una evolución o un paso más allá que el anterior.
Continuous integration
La integración continua es el primer paso y está conformado por 2 etapas clave: la construcción del proyecto o “build stage” y las pruebas al proyecto o “test stage”. Vamos a desencadenar este proceso cuando hagamos push a nuestro repositorio remoto con nuevos commits. Es posible decidir bajo qué condiciones se realizan ciertas etapas, vamos a verlo con un ejemplo más adelante.
Continuous delivery
La entrega continua es un paso más allá de la integración continua. El proyecto no solo se construye y prueba en cada push al repositorio remoto, sino que, como paso adicional, también se despliega de forma continua en un ambiente de producción, aunque este paso se activa manualmente.
Este método garantiza que el código se verifique automáticamente, pero requiere que el dueño del repositorio realice el despliegue final de manera manual.
Continuous deployment
Como ya podrán imaginarse el despliegue da un paso más allá que la entrega continua. En este caso eliminamos la interacción manual completamente. Cuando utilizamos despliegue continuo nuestro proyecto es desplegado en un ambiente de producción de manera automática. En el Git flow que utilizamos en Klooid el despliegue continuo se activaría cuando realizamos un merge en la rama master.
En la proxima entrada del blog vamos a enfocarnos en la integración continua y presentaremos un ejemplo de como podemos implementar un script en nuestros proyectos. ¡No te lo pierdas!