• Es una práctica donde todos los miembros de un equipo integran su trabajo frecuentemente como mínimo de forma diaria. • Cada integración es verificada por un build automático que detecta errores de integración tan pronto como sea posible. Constantemente monitorean los repositorios y apenas detectan un nuevo cambio, inician un nuevo ciclo de build. Involucra: • Compilación del código • Ejecución de las pruebas • Verificación de violaciones de estándares (métricas) • Notificación de errores ante fallas • Generación de documentación, reportes, etc. Un build (compilación) es simplemente un objeto que identifica el producto de software fabricado. El código fuente y los scripts de compilación son las materias primas; el proceso de fabricación comienza cuando se inicia una construcción; y las bibliotecas resultantes, los ejecutables y otros archivos de soporte son el resultado. http://msdn.microsoft.com/en-us/library/ms364061.aspx Un “build” es el producto generado por la realización de las tareas de compilación, prueba, inspección e instalación. Realizar un “build” tiene como resultado situar el código todo junto en un ambiente donde funciona de una manera cohesiva. ” Mejor la productividad de desarrollo Encuentre y arregle los errores con mayor rapidez Entregue las actualizaciones con mayor rapidez Mantener un único repositorio Mantener una ejecución rápida de la construcción del proyecto Elaboración y ejecución de los test de la construcción del proyecto Mantener las pruebas de integración en máquinas réplicas del entorno de producción Automatizar la construcción del proyecto Integrar como mínimo una vez al día los cambios en la línea principal Construir la línea principal en la máquina de integración Almacenar los ejecutables de las versiones del proyecto Percepción rápida del estado y cambios del sistema Automatizar el despliegue Software para control de versiones • SVN, CSV, clearcase, git, etc. Escriba unidades de prueba para el código • NUnit, Junit, Xunit,TestNG Ponga en uso alguna herramienta de CI • Jenkins, Travis CI, Bamboo, GitLab CI Utilice IC desde el inicio del proyecto, luego es complicado Sea constante con la práctica de CI https://sourceforge.net/projects/cruisecontrol/files/CruiseControl/2.8 .4/ https://sourceforge.net/projects/ccnet/files/CruiseControl.NET%20Relea ses/) Hudson (http://hudson-ci.org/latest/hudson.war) Apache Continuum (http://continuum.apache.org/download.html) 1.Manejo de Bibliotecas 2.Lineas de Base 3.Check out / Check in 4.Mezclas y Resolución de Conflictos Almacenamiento controlado del software y su documentación asociada durante el desarrollo, uso y mantención del software. Típicamente, se compone de una biblioteca principal, una biblioteca de producción, y un repositorio de software. La biblioteca principal contiene todos los ítems de configuración (ECS) revisados y aprobados, y por lo tanto pertenecientes a un baseline. La biblioteca de producción es la responsable de almacenar el software durante su construcción y prueba, una vez que éste sea aprobado pasa a la biblioteca principal. El repositorio es la entidad que almacena el software y su documentación una vez que éste ha sido liberado. Biblioteca de trabajo Biblioteca de integración Biblioteca de soporte al proyecto Biblioteca de producción Biblioteca maestra Biblioteca principal Repositorio de software Biblioteca de backup Es una especificación o producto que ha sido revisado formalmente y aceptado por la administración responsable, que a partir de entonces sirve como la base para un mayor desarrollo, y solo se puede cambiar a través de procedimientos formales de control de cambios La gestión de la configuración de software es un método para controlar el desarrollo de software y los cambios a lo largo de todo el ciclo de vida. Se asegura de: • • • • Cada cambio en el software ha sido confirmado y documentado. Los cambios no se pierden. El quién y el qué de un cambio están documentados. Se puede volver a una versión anterior del software en cualquier momento. Check out Check in Permite al usuario editar el archivo. Se crea un bloqueo en el archivo, lo que impide que otros usuarios puedan sobrescribir otros cambios en cada uno. Se elimina el bloqueo en el archivo. Después de editar el archivo, puede cargar la ultima versión del archivo. El check out exclusivo permite a los desarrolladores bloquear un archivo para que nadie más pueda trabajar en él hasta que se terminan los trabajos y procede a liberarlo. El check out colaborativo permite a varios desarrolladores trabajar sobre un mismo archivo y, ala hora de fusionarlo se realizará un “control de cambios” que identificará los cambios de cada desarrollador, sin que se pierdan cambios de cada colaborador. “Merge” es cuando el sistema de control de versiones se encuentra con que dos personas han cambiado el mismo archivo, pero de manera que no se superponen. Cuando dos cambios diferentes se superponen, el resultado es un “conflicto”. Este tipo de conflictos pueden no ser resueltos de forma automática, entonces necesitará la intervención de un usuario. PREGUNTAS