yml tutorial pipelines examples example tfs continuous-integration azure-devops tfsbuild

tfs - tutorial - azure pipelines yml examples



¿Hay alguna manera de acelerar las compilaciones en los servicios del equipo de estudio visual(y TFS) (1)

Los servidores de compilación alojados sufren algunas fallas. Primero, siempre son imágenes limpias sin nada conservado, por lo que sus fuentes, paquetes y archivos binarios creados previamente no están disponibles. Debido a esto, la única manera de acelerar más la compilación es:

  • Reduzca la cantidad de proyectos que genera al reutilizar los resultados anteriores en forma de paquetes NuGet. Esto requeriría que divida la solución en bits más pequeños y use las funciones de administración de paquetes de Visual Studio Team Services o de un servicio de terceros como MyGet.
  • Paraleliza tus construcciones. Si está creando múltiples proyectos o múltiples configuraciones, haga uso de la capacidad de la opción Configuración múltiple para activar múltiples compilaciones en múltiples agentes (en este caso, debe asignar múltiples agentes alojados)
  • Habilite BuildInParallel para permitir que MsBuild active múltiples instancias y permita que MaxCpuCount=2 use múltiples núcleos de CPU disponibles en los agentes alojados. Parece que se ejecutan en una instancia A3, lo que te da 4 núcleos para jugar. Si está utilizando tanto BuildInParallel como MaxCpuCount , no MaxCpuCount la cantidad de núcleos en MaxCpuCount .
  • Genere todos los resultados en un solo directorio utilizando OutputPath .
  • Habilite la ejecución de pruebas paralelas usando la casilla de verificación en la tarea de compilación.
  • Ajusta tus asignaciones de espacio de trabajo tanto como puedas. Cubra las carpetas que no son necesarias, asigne solo lo que realmente necesita.
  • Salta todo lo que realmente no necesitas para la construcción de tu CI. Es posible que desee desactivar Code Analaysis y ejecutar su conjunto de pruebas completo solo en una versión nocturna para aumentar su tiempo de retroalimentación, aunque esté reduciendo la calidad de sus comentarios.

Esto es todo lo que puedes hacer. No puede alquilar máquinas virtuales más rápidas en el grupo hospedado y no puede usar ninguna de las funciones de MsBuild que le permitiría realizar compilaciones incrementales o al menos actualizaciones incrementales del área de trabajo. y no hay manera de eliminar el tiempo de inicialización del agente y la recuperación de origen.

Para acelerar realmente, necesitarás configurar tu propio servidor de compilación. El uso de una máquina virtual DS Azure que se ejecute en un SSD permanente le dará la mayor ventaja de rendimiento. Con tu propia VM puedes hacer las siguientes cosas adicionales:

  • Desactiva Clean Workspace. Esto permitirá obtener recuperaciones de control de fuente incrementales.
  • Desactiva Clean Build. Esto permitirá a MsBuild realizar construcciones incrementales.
  • Instale múltiples agentes en la misma máquina con suficientes configuraciones múltiples de compilación de CPU en paralelo en la misma máquina virtual.
  • Instale un Proxy TFVC (use la versión TFS 2013) en el agente de compilación para los archivos almacenados localmente en caso de que quiera compilar con un espacio de trabajo limpio, pero aproveche la recuperación más rápida de fuentes para TFVC.
  • En caso de que esté utilizando eventos Pre / Postbuild, asegúrese de que especifiquen sus Entradas y Salidas para que MsBuild deduzca si el destino se puede omitir para las compilaciones incrementales.

En lugar de alojar al agente en Azure, puede instalar un agente de compilación local en una estación de trabajo de desarrollador robusta o también en un servidor local existente.

Hay otros consejos y trucos de MsBuild que podría aplicar a un mayor rendimiento de iprove de MsBuild. Puede que te sorprenda cuánto tiempo puedes afeitar tus construcciones de esa manera.

Nuestro equipo ha establecido una integración continua utilizando Visual Studio en línea. Hemos intentado aumentar nuestra suscripción a avanzado con un límite de construcción pagado que no estamos cerca de alcanzar. Sin embargo, los tiempos de construcción son excepcionalmente lentos.

Las compilaciones se colocarán en una cola durante varios minutos y luego demorarán varios minutos en ejecutarse [incluso cuando se prueban agregar paquetes de Nuget al control de código fuente].

¿Hay alguna forma de acelerar las compilaciones en Visual Studio Online? Si no, ¿cuáles son algunas buenas alternativas?

Veo la aceptación o la configuración de nuestro propio servidor de integración continua en una máquina virtual de Azure como el peor caso de reserva.