Mejorar el rendimiento de nuestras Builds

Una de las prácticas de la Integración Continua que recomienda Martin Fowler es la de mantener lo más rápidas posibles nuestras Builds, aunque también podemos hacer aplicable esta práctica a todas nuestras Builds, no solo las de Integración Continua. Normalmente uno de los pasos en los que más suelen tardar las Builds es a la hora de obtener el código del repositorio y preparar el entorno para compilar, teniendo que limpiar el contenido de la última Build, regenerar el Workspace y obtener la ultima versión del código.

Tal y como ya contó el gran Luis Fraile en un post hace tiempo, lo ideal para mejorar el rendimiento es evitar que se realicen estos pasos que he comentado anteriormente añadiendo una serie de propiedades dentro de nuestro fichero TFSBuild.proj para hacer lo que se denomina Builds Incrementales. Este tipo de Builds se configuran para que solo se obtengan los ficheros modificados sobre los últimos que ya había en el Working Directory del Build Agent con lo cual se ahorra bastante tiempo. Si habéis leído el post de Luis (lectura recomendada), con Team Build 2005 se utilizaban 3 propiedades para configurar este tipo de Builds Incrementales.

<Project>
  <PropertyGroup>
    <SkipClean>true</SkipClean>
    <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
    <ForceGet>false</ForceGet>
  </PropertyGroup>
</Project>

En Team Build 2008 han simplificado este proceso, que era bastante utilizado, por una sola propiedad llamada IncrementalBuild que simplemente tenemos que establecer a «true» y hará el mismo efecto que las 3 propiedades que teníamos que establecer en la versión anterior.

<Project>
  <PropertyGroup>
    <IncrementalBuild>true</IncrementalBuild>    
  </PropertyGroup>
</Project>


Simplemente con esto ya tendríamos nuestras Builds configuradas y probablemente hayamos ganado algo de velocidad a nivel global en el proceso de la Build.

teamsystem.es
Este post es contenido cross-posting desde www.teamsystem.es y estoy muy interesado en tu opinión. ¿Porqué no te acercas y dejas un comentario para que todos podamos aprender?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *