Introducción
El proceso de integración continua tiene como objetivo principal el de comprobar que las actualizaciones en el código fuente no generen retrasos y/o anomalías en el desarrollo de una aplicación.
La integración continua fue utilizada por IBM para el desarrollo del OS/360 en los años 60.
La integración continua no es una herramienta sino una práctica derivada de la Programación extrema o eXtreme Programming (XP). Los desarrolladores trabajando en una misma aplicación integran el programa en el que trabajan lo más a menudo posible. En cada integración se genera un proceso basado en una plataforma que verifica automáticamente el funcionamiento de la aplicación para detectar fallos cuanto antes.
Lo más difícil para un desarrollador es reflexionar sobre el impacto real de una actualización sobre el total de funcionalidades de la aplicación. La integración continua permite dar al desarrollador esta visión más amplia sobre la aplicación ya que los test de la aplicación se hacen en un entorno clon de producción.
Palabras clave
- Build: Es el conjunto de etapas necesarias para la compilación, creación de entregables al lanzamiento de los test (funcional, unitarios, IHM, etc.)
- Commit: Es la operación que permite la validación de las actualizaciones del código fuente existente en el directorio de trabajo local de la máquina del desarrollador por medio de la herramienta de administración de configuración (como SVN). El commit se hace del directorio de trabajo local hacia el referencial de la herramienta de administración de configuración.
- Update: Es la operación que permite la actualización a partir del referencial de la herramienta de administración de configuración del directorio local.
- Checkout: Es la operación de extracción de una versión de un proyecto en desarrollo del referencial del gestor de configuración en un directorio de trabajo local.
Cómo se lleva a cabo
- El desarrollador hace un commit sobre el referencial del administrador de configuración.
- El servidor de integración continua detecta el commit, hace un checkout y lanza las operaciones de compilación y test.
- En caso de error, se genera una notificación para el jefe del proyecto y/o al equipo de desarrollo.
- El desarrollador concernido por el error hace un update del referencial de administración de configuración y corrige el defecto.
Funcionalidades generales de un servidor de integración continua
Principalmente, un servidor de integración continua debe permitir:
- Hacer las operaciones de checkout del administrador de configuración
- La compilación del código fuente
- La creación del archivo de la aplicación (Ear, Jar, War, …)
- El despliegue del archivo en la máquina de test
- La ejecución de una serie de test: Junit, Cactus, Auditoria de código fuente, test IHM, test funcionales
- La notificación del resultado: mail, RSS.
- La creación de reportes estadísticos
- La integración con otras herramientas
Los servidores de integración más conocidos
- Cruise Control: open source y gratuito, muy utilizado, muy documentado. Permite testear aplicaciones J2EE y aplicaciones en .Net. Es la referencia en la integración continua.
- Hudson: open source y gratuito, se ha hecho muy popular después de Cruise Control. Permite testear aplicaciones J2EE. Utilizado por SUN
- Continuum: open source y gratuito, sostenido por la fundación Apache
- Bamboo: open source pero de pago.
Véase también
Comunidad de asistencia y consejos.
El artículo original fue escrito por
wjaouadi. Traducido por
Carlos-vialfa.