11.3 Configuración de un canal de integración continua (CI)

La integración continua (CI) es una práctica de desarrollo de software en la que los miembros de un equipo integran su trabajo con frecuencia; por lo general, cada uno se integra al menos diariamente, lo que genera múltiples integraciones por día. Cada integración se verifica mediante una compilación automatizada (incluidas pruebas) para detectar errores de integración lo más rápido posible. Esto implica tanto configurar un repositorio de código como definir una canalización de CI.

Configuración del repositorio de código

Antes de configurar una canalización de CI, es esencial establecer un repositorio de código eficiente. Un repositorio de código es el lugar donde se almacena y gestiona el código fuente del proyecto. Los sistemas de control de versiones como Git se utilizan ampliamente para este propósito, con plataformas como GitHub, GitLab y Bitbucket que ofrecen repositorios remotos que facilitan la colaboración y la integración continua.

Elección de la plataforma de alojamiento de código

El primer paso es elegir una plataforma de alojamiento de código que se alinee con las necesidades del proyecto y del equipo. Cada plataforma tiene sus propias características y beneficios, como integración con herramientas CI/CD, administración de permisos, revisión de código e informes de problemas.

Creación y configuración del repositorio

Después de elegir la plataforma, es necesario crear un nuevo repositorio. Durante la creación, puedes agregar un archivo README, una licencia y un archivo .gitignore, que son esenciales para cualquier proyecto. El archivo README proporciona información sobre el proyecto, mientras que .gitignore especifica archivos y directorios que el control de versiones debe ignorar. La licencia define cómo otros pueden utilizar el código.

Gestión de sucursales

Una estrategia eficaz de gestión de sucursales es crucial para CI. Git permite varias estrategias, como Git Flow y Trunk Based Development. En el contexto de CI, muchos equipos prefieren el enfoque de desarrollo basado en troncales, que fomenta compromisos frecuentes con la rama principal (troncal/maestra) para facilitar la integración continua.

Protección de sucursales

Las plataformas de alojamiento de códigos suelen ofrecer funciones para proteger ramas importantes. Por ejemplo, puede configurar la rama principal para que requiera revisiones de código exitosas y pruebas de CI antes de que se puedan realizar fusiones. Esto ayuda a mantener la calidad y estabilidad del código en la rama principal.

Webhooks e integración con herramientas de CI

Los webhooks se utilizan para activar acciones automáticas cuando ocurren eventos específicos en el repositorio. Al configurar una canalización de CI, los webhooks se pueden configurar para iniciar compilaciones automáticas cada vez que se envía código al repositorio o cuando se crea una solicitud de extracción.

Definición de canalización de CI

Con el repositorio de código configurado, el siguiente paso es definir la canalización de CI. Una canalización de CI es una serie de pasos que el código debe seguir para llegar desde el repositorio al entorno de producción. Por lo general, esto incluye pasos como compilar, probar y, en algunos casos, implementar en un entorno de prueba.

Herramientas de CI

Existen varias herramientas de CI en el mercado, como Jenkins, Travis CI, GitLab CI, CircleCI y GitHub Actions. Cada uno tiene sus propias características y formas de configuración. La elección de la herramienta dependerá de las necesidades específicas del proyecto y de la familiaridad del equipo con la herramienta.

Archivo de configuración de CI

Las herramientas de CI modernas suelen utilizar un archivo de configuración YAML o JSON que define la canalización. Este archivo especifica los pasos de la canalización, los entornos de ejecución (como los contenedores Docker) y las acciones que se deben tomar en respuesta a diferentes eventos en el repositorio de código.

Crear guión

El script de compilación es donde usted define cómo se construye el software. Esto puede incluir compilar código, ejecutar pruebas unitarias, generar artefactos (como archivos .jar o .war para aplicaciones Java) y verificar la calidad del código.

Pruebas automatizadas

Una parte crucial del proceso de CI son las pruebas automatizadas. Esto incluye pruebas unitarias, pruebas de integración, pruebas de sistemas y, en algunos casos, pruebas de rendimiento y seguridad. La ejecución exitosa de estas pruebas es un indicador de que el código es estable y está listo para integrarse con el trabajo de otros desarrolladores o ser promovido a la siguiente etapa del proceso.

Notificaciones e Informes

Las notificaciones están configuradas para alertar al equipo cuando una compilación falla o se aprueba. Esto se puede hacer por correo electrónico, Slack u otro sistema de mensajería. Se generan informes detallados de compilación y prueba para proporcionar informacióntrata sobre el estado del código e identifica problemas rápidamente.

En conclusión, configurar una canalización de CI implica configurar cuidadosamente el repositorio de código y definir un conjunto de pasos de prueba y compilación automatizados. Al seguir las mejores prácticas y utilizar las herramientas adecuadas, los equipos pueden garantizar que el código esté siempre en un estado compilable, lo que reduce el riesgo de problemas de integración y acelera el ciclo de lanzamiento del software.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre la configuración de un canal de integración continua (CI) es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Configuración de una canalización de integración continua (CI): definición de activadores de compilación

Siguiente página del libro electrónico gratuito:

15Configuración de una canalización de integración continua (CI): definición de activadores de compilación

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.