2011-10-18 12 views
5

Mi pregunta: ¿Cómo puedo ejecutar un script de despliegue desde la plantilla de compilación TFS 2010 en un sistema remoto que solo tiene un agente MSTest ejecutándose?Ejecutar script de despliegue del flujo de trabajo de compilación TFS en el sistema remoto usando el agente MSTest solo

Sé que esto se puede hacer activando la sección Implementación en el archivo de configuración de configuración de prueba, pero esto no es lo suficientemente flexible. Por la noche corre una construcción. Cuando la construcción es exitosa, se coloca una secuencia de comandos de implementación en una ubicación de colocación. La ubicación de la caída es específica de la fecha, proyecto y construcción. Estos parámetros están disponibles en la plantilla de compilación TFS que usamos.

No tengo Lab Management disponible, solo un servidor físico. Prefiero no arruinar el servidor físico con un agente de compilación adicional para que solo realice la implementación. El agente de MSTest aparentemente es capaz de ejecutar secuencias de comandos de implementación, pero ¿cómo puedo usar esa funcionalidad desde el flujo de trabajo de construcción de TFS? Por ejemplo, ¿puedo usar la actividad RunDeploymentScript sin tener Lab Management?

Respuesta

5

PSExec es una gran herramienta para ejecutar scripts en computadoras remotas. Lo uso en Team Deploy que le permite instalar MSI en computadoras remotas de Team Build. También puede ejecutar PowerShell en computadoras remotas pero es un poco más complicado de configurar. Otra opción es usar MSDeploy. Hay una opción de comando que puede ejecutar cualquier comando en una computadora remota. Usualmente uso una actividad InvokeProcess para llamar a un script de PowerShell en el servidor de compilación. Desde la secuencia de comandos de PowerShell he llamado a MSDeploy para ejecutar una secuencia de comandos remota de PowerShell en un servidor de destino. Suena mal pero funcionó bien.

No puede ejecutar RunDeploymentScript en la máquina de destino. Puede usar una plantilla modificada para implementar en un entorno físico. Here is a good post on doing this.. Las opciones que mencioné anteriormente no necesitan ningún agente. Puede utilizar la actividad de gestión de laboratorio ExecuteRemoteTestRun sin Lab Management para ejecutar las pruebas MTM con el agente de prueba con un controlador de prueba que está registrado en la colección de proyectos (Administrador de pruebas).

Deseo saber si tiene alguna pregunta sobre cualquiera de estas opciones.

+0

su respuesta se alinea con el enfoque que también adoptamos en el futuro. Ayer identificamos a PSExec como una posible solución al problema. Es tan molesto ver que un agente de prueba ES capaz de ejecutar scripts de implementación, pero parece que no hay una forma directa de usar esta funcionalidad desde un flujo de trabajo de compilación. De todos modos, para el público más grande, esta es la respuesta correcta, ¡gracias! – kroonwijk

+0

¡Genial! Sí, sería bueno aprovechar más de esas características. La definición de compilación de Lab Mangement y las modificaciones de implementación de entorno físico usan el agente de compilación para ejecutar las secuencias de comandos de implementación. En TFS 11, las implementaciones de Lab Management admitirán entornos físicos con lo que se denomina "entornos estándar". También han simplificado las instalaciones del agente y solo requieren el agente de prueba. No más agentes de laboratorio y construcción para máquinas en los entornos. Avíseme si tiene algún problema con PSExec. – MikeDouglasDev

Cuestiones relacionadas