La integración continua permite asegurar de forma automatizada y continua que los cambios realizados por los desarrolladores no presentan problemas de integración. Automatiza la construcción y las pruebas con cada cambio en el repositorio de código. Requiere automatizar la construcción del sistema mediante herramientas como Maven, añadir pruebas unitarias y de integración, y establecer un punto central de entrega de cambios para la integración. Los servidores de integración continua como Hudson detectan cambios, lanzan construcciones y prue
5. de forma automatizada que los cambios que lleva cada uno de los desarrolladores en un equipo de trabajo no presenta problemas de integración con el código del resto del equipo. Es una de las prácticas propuestas por XP, eXtremme Programming, que es una de las metodologías ágiles más conocidas. El objetivo es trasladar la variable del esfuerzo de integración de la parte final del desarrollo para repartirlo a lo largo de todo el proyecto.
7. Ventajas (1) 2.0 Permite: Minimizar los tiempos y la problemática de la integración en los equipos de desarrollo. Automatizar la construcción y paso de pruebas en cada cambio realizado en el repositorio de código Mejora la eficiencia del equipo de desarrollo. Automatizar herramientas de análisis de calidad del código, como Sonar, Checkstyle, PMD, Cobertura, etc…
8. Ventajas (2) 2.0 Automatizar pasos a entornos de pruebas, como entornos de preproducción. Se identifican errores de entorno en fases tempranas. Automatizar tareas de gestión de la configuración, como etiquetado de versiones de desarrollo Minimiza el tiempo de realimentación con el cliente. Hacer visible al equipo de desarrollo el estado del proyecto. Aumentar la confianza en el código entregado al repositorio.
10. Necesidades: Automatizar La construcción del sistema (1) 3.0 La integración continua requiere que el build completo del sistema este automatizado y pueda ejecutarse con un único comando Ello implica mejorar la gestión de dependencias. Actualmente, la mejor propuesta de herramienta de gestión de dependencias es Maven. Empleando repositorios corporativos, se permite integrar los artefactos privados, con la gestión optimizada de los repositorios de artefactos públicos, ej: Nexus, Artifactory, …
11.
12. Tanto con artefactos públicos y otros frameworks (Spring, JPA, JSF, … ) como con artefactos privados.
13. Habilita un ciclo de vida repetible: Construcción, pruebas, empaquetado, despliegue, etc..
22. Rama de mantenimiento de la última versión en producción.Los miembros del equipo de desarrollo deben entregar sus cambios cada vez que esos cambios sean correctos y pasen las pruebas asociadas en su entorno local, afrontando antes la integración con cambios conflictivos de otros miembros del equipo En todo momento, el servidor de integración continua construye de forma completa el sistema en cada cambio del repositorio, avisando de los errores a los autores de los cambios entregados.
23.
24.
25. Etiquetar el código tras una construcción exitosa.
26. Ante errores, notificar al equipo de desarrollo de los mismos.
27.
28. Servidor de Integración Continua 3.4 Evolución de resultados de la ejecución de las pruebas Histórico de Construcciones