20 Jan 2017

Introducción a la Integración Continua

Repaso a lo que significa la intregración continua y para que se usa

¿De que estamos hablando?

Un sistema de integración continua permite que el trabajo de varias personas sobre un mismo código esté constantemente comprobado por un sistema automático que verifica de que siempre hay un código con un mínimo de funcionalidad en el repositorio.

La necesidad de este tipo de sistema surge cuando un desarrollador hace una subida parcial de su código dejando el estado del repositorio inestable o erróneo.

Usando un sistema de integración continua (o con sus siglas en inglés CI), justo en el momento que un desarrollador sube su código al repositorio central, se desencadena una serie de eventos, generalmente las tareas de compilación y pruebas automáticas que permiten detectar estros problemas. Esta situaciones, más comunes en equipos de varias personas, también nos ocurren con proyectos separados pero dependientes.

Un ejemplo

Ejemplo de dependencia entre libreria Por ejemplo, tenemos una librería A, queremos asegurarnos que no se rompe cuando se cambia la API de una sus dependencias (B o C), esto puede ocurrir cuando un programador sube código de B, se puede configurar nuestro entorno de CI para que se pruebe A con los nuevos cambios de B, lo que permite detectar error transversales.

Existen muchas herramientas para poder hacer CI, algunas de pago, otras gratuitas para proyectos pequeños o totalmente gratis. En las siguientes entradas iremos viendo algunas de las más comunes, aunque el objetivo principal es ver como configurar nuestro entorno de CI para que nuestros proyectos de desarrollo sean más productivos.

Además de los sistemas de CI, veremos nuevos conceptos relacionados que están surgiendo, algunos de ellos no son más que formas de nombrar formas de trabajo muy bien definidas desde hace mucho tiempo o cambios de nombre a conceptos clásicos : DevOps, Continous Delivery o Continuous Releasing entre otros.

Si os interesa el tema estad atentos a futuras entradas.