Estamos teniendo problemas de rendimiento con nuestra implementación de Team Foundation Build Server y me estoy quedando sin ideas sobre cómo acelerar las cosas. Ya hemos agregado algunos elementos de PropertyGroup para aumentar el rendimiento en varios pasos (SkipClean, SkipLabel, SkipInitializeWorkspace), pero creo que debemos someternos a una importante reestructuración para solucionarlo. Aquí está nuestra configuración:Team Build ahora Painfully Slow
- Tenemos alrededor de 40 aplicaciones web que son cada uno muy diferente, pero correr fuera un montón de ensamblados compartidos
- Cada una de estas aplicaciones web tiene su propia solución;
- Hay alrededor de 10 a 25 conjuntos compartidos referenciados por cada una de estas aplicaciones web;
- Existe una definición de compilación que contiene todas las soluciones que se activan en cada check-in en el trunk;
Y aquí es los problemas de fondo que estamos encontrando
- Durante la construcción, se va a construir cada ensamblado compartido tantas veces como se le hace referencia, en lugar de construir una vez y utilizar para cada aplicación
- El tiempo de copiado del archivo es bastante lento para el directorio desplegable. Tiene que estar sobre la red compartida y no tomará una ruta local.
- Cada tantas compilaciones, uno o más de los archivos de salida se "bloquea" y hace que la construcción se rompa incluso si la compilación es correcta.
- Y otra cosa: también he intentado definiciones de compilación separadas, pero hacerlo también forzará que se obtenga otro espacio de trabajo en Obtener la última versión. Prefiero que el servidor de compilación contenga una versión del tronco para construir.
En los últimos meses hemos cedido al letargo e ignorado este problema, pero ahora el tiempo de construcción es de más de una hora a una hora y media.
Estoy jugando con la idea de aprender y cambiar a Cruise Control para un mayor control que tendría. ¿Alguien está en desacuerdo con eso?
Cualquier ayuda es muy apreciada. ¡Gracias!
¿Es seguro decir que el comportamiento fuera de la caja de Team Foundation Build es un poco miope? Al definir compilaciones dentro del asistente, tiene la opción de elegir qué soluciones de Visual Studio incluir. Parece que estás abogando por una separación de esa norma, ¿correcto? –
Defendería no ser esclavo de * cualquier * herramienta, especialmente la compilación. La configuración lista para usar "fácil" es ideal para iniciar un proyecto, pero seguramente se volverá inmanejable a largo plazo. Vale la pena el esfuerzo (continuo) para explicar explícitamente qué debe hacer la construcción. – Chris