Compartir a través de


Personalizar flujos de trabajo de Lab Management

El flujo de trabajo de un extremo a otro de Visual Studio Lab Management ayuda a automatizar la compilación de la aplicación, para implementar la nueva compilación en un entorno virtual y ejecutar pruebas en la nueva compilación. LabDefaultTemplate es una plantilla de flujo de trabajo predeterminada que puede utilizar inmediatamente. Para obtener información acerca de cómo se usan LabDefaultTemplate, vea Cómo: Implementar una aplicación en un entorno virtual. Pero cada proceso de compilación-implementación-prueba podría ser ligeramente diferente debido a requisitos distintos. Por ejemplo, un flujo de trabajo podría requerir copiar los binarios de probar la ubicación normal de compilación mientras otro flujo de trabajo requiere copiar los binarios de prueba de una ubicación temporal. O un flujo de trabajo podría requerir que el entorno esté almacenado en la biblioteca para que cada evaluador pueda implementar, mientras que otro flujo de trabajo no guarda el entorno en absoluto. Dado que la plantilla de flujo de trabajo predeterminado se basa en el flujo de trabajo de Windows 4.0, es totalmente extensible y personalizable y puede personalizar LabDefaultTemplate para que se ajuste a sus requisitos concretos.

En este tema se describen los pasos generales para personalizar la plantilla de flujo de trabajo y después se proporcionan cinco ejemplos de escenarios donde es muy útil la personalización:

  • Especifique la ubicación de los archivos binarios de la prueba que no sea la ubicación de compilación.

  • Admita las implementaciones de aplicaciones que requieren un reinicio después de la instalación.

  • Lea los archivos de control de código fuente.

  • Acceso a una ubicación de destino de compilación mediante la cuenta del agente de compilación.

  • Acceso a otras ubicaciones mediante la cuenta de servicio Lab.

Conceptos básicos de personalización de flujo de trabajo

Hay tres conceptos clave que participan en la personalización del flujo de trabajo:

  • Plantilla la plantilla define la secuencia de actividades o pasos que forman parte del flujo de trabajo. La plantilla se basa en Windows Workflow Foundation 4.0 y se almacena como un archivo .xaml en el control de código fuente. Para cargar la plantilla en el editor del flujo de trabajo, haga doble clic en el archivo .xaml. En el editor, podrá ver las diferentes actividades y secuencias que determinan el flujo de trabajo. A continuación, puede utilizar variables con distintos ámbitos, lógica condicional, bucles, etc., para programar la plantilla, igual que haría con cualquier otro lenguaje de programación. Windows Workflow Foundation permite personalizar la plantilla predeterminada de laboratorio para adaptarla a sus necesidades.

  • Actividades la actividad es el bloque de creación de un flujo de trabajo y la plantilla predeterminada de laboratorio utiliza muchas actividades. Puede encontrar las actividades adicionales en el Cuadro de herramientas bajo Team Foundation Lab Management Activities. Para utilizar una actividad en el flujo de trabajo, arrástrelo desde el cuadro de herramientas del Editor de flujo de trabajo de Visual Studio a la ubicación adecuada en la plantilla. Puede determinar los parámetros de entrada y salida examinando las propiedades de la actividad. Para obtener más información sobre cada actividad de Lab Management, vea Actividades de Team Foundation LabManagement. Si las actividades que se incluyen con el producto son escasas para cumplir los requisitos, puede agregar nuevas actividades.

  • Argumentos puede crear nuevos argumentos de entrada para las entradas que necesita de usuario y pasar estos valores a las actividades. Haga clic en la pestaña Argumentos en la parte inferior de la ventana del editor de flujo de trabajo para ver los argumentos existentes. Si crea nuevos argumentos, aparecerán en la sección Parámetros del proceso de compilación de la pestaña Proceso en la definición de compilación.

Piense en estos conceptos cuando revise los dos ejemplos siguientes donde es necesaria la personalización. El primer ejemplo habla de cómo cambiar el argumento de una actividad existente en la plantilla y el segundo ejemplo habla de cómo agregar nuevas actividades del cuadro de herramientas. En estos ejemplos deberían proporcionar suficiente contexto para personalizar LabDefaultTemplate según sus requisitos.

Antes de iniciar la personalización

Hay algunos pasos generales que debe completar antes de empezar a personalizar la plantilla de flujo de trabajo de LabDefaultTemplate. El diagrama siguiente muestra estos pasos.

Ubicación de carpetas para plantillas de flujo de trabajo predeterminadas

Para prepararse para la personalización

  1. En Team Explorer, haga doble clic en el nodo Control de código fuente de su proyecto de equipo.

  2. En el Explorador de control de código fuente, expanda el árbol del Control de código fuente y busque la carpeta $/<Nombre_proyecto>/BuildProcessTemplates.

  3. Asigne esta carpeta a una carpeta local, por ejemplo, C:\Sources.

  4. Haga clic con el botón secundario en el archivo LabDefaultTemplate.xaml y, a continuación, haga clic en Obtener la última versión.

  5. Cree una copia del archivo LabDefaultTemplate.xaml y asígnele un nombre nuevo, por ejemplo, LabDefaultTemplate_customize.xaml

  6. Agregue este nuevo archivo al control de código fuente.

  7. Haga doble clic en este nuevo archivo. El archivo se abrirá en Visual Studio Workflow Editor.

A continuación, personalizará la copia que acaba de hacer de la plantilla de flujo de trabajo predeterminada.

Personalizar para especificar la ubicación de los archivos binarios de pruebas distinta de la ubicación de destino de la compilación

La plantilla de flujo de trabajo predeterminada, LabDefaultTemplate, supone que la ubicación de los archivos binarios de la prueba es igual que la ubicación donde se colocan compilaciones. Sin embargo, en su caso, el código de prueba podría no compilarse junto al código del producto. Si ocurre esto, es posible que desee personalizar la plantilla para tomar los binarios de pruebas de una ubicación diferente. Esta personalización implica tres pasos tal y como se muestra en la ilustración siguiente.

Arrastrar una actividad LabManagemente desde el cuadro de herramientas

Definición de un argumento de flujo de trabajo para especificar la ruta de acceso de los archivos binarios de pruebas

Para definir un argumento

  1. En la parte inferior de la ventana del editor del flujo de trabajo, haga clic en la pestaña Argumentos.

  2. Haga clic en Crear argumento. En el cuadro de texto, escriba el nombre del argumento, por ejemplo, TestBinariesLocation. En la lista desplegable Dirección, haga clic Entrada. En la lista desplegable Tipo de argumento, haga clic Cadena.

Pasar un valor de argumento de la actividad ExecuteRemoteTestRun

Esta actividad crea una prueba remota, espera hasta que finaliza la prueba y, a continuación, actualiza la información de compilación con las estadísticas de pruebas.

Para pasar el valor de argumento

  1. En el editor del flujo de trabajo, desplácese a la actividad Ejecutando pruebas. Aunque el nombre para mostrar de la actividad es Ejecutando pruebas, el tipo de actividad es ExecuteRemoteTestRun.

  2. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades se abre en la esquina inferior derecha, y muestra los argumentos de entrada y salida de esta actividad. Uno de los argumentos de entrada de esta actividad es TestDirectory, que establece la ruta de acceso a la ubicación de los archivos binarios de la prueba.

  3. En la ventana Propiedades, haga clic en TestDirectory. Al final de la fila haga clic en los puntos suspensivos (...).

  4. En el Editor de expresiones, escriba TestBinariesLocation y, a continuación, haga clic en Aceptar.

  5. En el menú Archivo, haga clic en Save LabDefaultTemplate_customize.xaml

  6. En la barra de menús del explorador de control de código fuente, haga clic en el icono Proteger.

Ahora puede utilizar el archivo .xaml personalizado para crear nuevas definiciones de compilación. El nuevo argumento TestBinariesLocation aparecerá en la sección Varios de la pestaña Proceso en la definición de compilación y, puede asignar un valor.

Personalización para admitir instaladores de aplicación que requieren un reinicio del equipo después de la implementación

La plantilla de flujo de trabajo, LabDefaultTemplate predeterminada no reinicia el entorno virtual después de implementar la aplicación. Es posible que desee personalizar la plantilla para admitir aplicaciones que requieren un reinicio después de que se implementan. Si se implementara manualmente la aplicación en un entorno virtual, se volvería a iniciar solo la máquina virtual en la que la aplicación se instaló. Visual Studio Lab Management no admite las operaciones en máquinas virtuales individuales en un entorno. Por consiguiente, reiniciar un equipo requiere que todos los equipos del entorno virtual se reinicien.

Nota de precauciónPrecaución

Asegúrese de que los scripts de implementación nunca reinicien la máquina virtual. Si ocurre esto, el agente de compilación que ejecuta el script de implementación perderá la conexión con el controlador de compilación y el flujo de trabajo puede detenerse.

Reiniciar las máquinas virtuales después de implementar la nueva compilación requiere agregar tres actividades a LabDefaultTemplate:

  1. Detener el entorno

  2. Iniciar el entorno

  3. Espere a que las máquinas virtuales se inicien antes de continuar con el resto del flujo de trabajo.

Detener el entorno

Puede agregar una actividad para detener el entorno a la plantilla de flujo de trabajo predeterminada arrastrando la actividad StopLabEnvironment del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad.

Para detener el entorno

  1. En el editor del flujo de trabajo, desplácese a una actividad con nombre para mostrar La aplicación se implementó correctamente.

  2. En el menú Ver, haga clic en Cuadro de herramientas. Se abrirá el cuadro de herramientas en el lado izquierdo y se mostrará una lista de Actividades de Team Foundation Build. Desplácese por la lista de actividades hasta que vea la lista de Team Foundation Lab Management Activities.

  3. En el cuadro de herramientas, haga clic en la actividad StopLabEnvironment. Arrástrela al editor del flujo de trabajo y póngala delante de la actividad La aplicación se implementó correctamente.

  4. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada LabEnvironmentUri que hace referencia al identificador URI del entorno.

  5. Haga clic en la pestaña Variables. La lista de variables se muestra.

  6. En la fila de LabEnvironmentUri y en la columna Predeterminada, haga doble clic en Escriba una expresión de VB. En el cuadro de texto escriba LabEnvironmentUri. El editor mostrará todos los usos existentes de los parámetros y puede seleccionar el valor de esa lista en lugar de escribirlo.

Iniciar el entorno

Puede agregar una actividad para iniciar el entorno a la plantilla de flujo de trabajo predeterminada arrastrando la actividad StartLabEnvironment del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad.

Para iniciar el entorno

  1. En el cuadro de herramientas, haga clic en la actividad StartLabEnvironment. Arrástrelo al editor del flujo de trabajo y colóquelo antes de la actividad La aplicación se implementó correctamente pero después de la actividad de StopLabEnvironment.

  2. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada LabEnvironmentUri que hace referencia al identificador URI del entorno.

    Haga clic en la pestaña Variables. La lista de variables se muestra.

    En la fila de LabEnvironmentUri y en la columna Predeterminada, haga doble clic en Escriba una expresión de VB. En el cuadro de texto escriba LabEnvironmentUri. El editor mostrará todos los usos existentes de los parámetros y puede seleccionar el valor de esa lista en lugar de escribirlo.

Espere a que las máquinas virtuales se reinicien antes de continuar con el resto del flujo de trabajo.

Puede agregar un tiempo de espera para que se inicien las máquinas virtuales arrastrando la actividad Delay del Cuadro de herramientas a la plantilla de flujo de trabajo e inicializando las variables de la actividad. Esta actividad se encuentra en la pestaña Primitivas del Cuadro de herramientas.

Para esperar a que las máquinas virtuales se inicien

  1. En el cuadro de herramientas, haga clic en la pestaña Primitivas.

  2. Haga clic en la actividad Delay. Arrástrela al editor del flujo de trabajo y colóquela antes de la actividad La aplicación se implementó correctamente pero después de la actividad de StartLabEnvironment.

  3. Haga clic con el botón secundario en la actividad y, a continuación, haga clic en Propiedades. La ventana Propiedades muestra los argumentos de entrada y salida de esta actividad. Observe que el flujo de trabajo ya tiene una variable denominada Duración, que hace referencia al tiempo de espera.

  4. En la ventana Propiedades, haga clic en Duración y, a continuación, haga clic en los puntos suspensivos (...).

  5. En el Editor de expresiones, escriba el tiempo de espera (por ejemplo, 10 minutos) en formato TimeSpan.FromMinutes(10).

Después de haber modificado esta plantilla, protéjala en el sistema de control de código fuente y úsela para crear una nueva definición de compilación e implementar aplicaciones que requieren el reinicio después de la instalación.

Personalización para leer los archivos de control de código fuente

Si crea actividades personalizadas y después las utiliza en la plantilla de flujo de trabajo, asegúrese de que el agente de compilación, que se comunica con la cuenta de servicio Lab, tenga acceso a estas actividades. Dado que estas actividades tienen que protegidas en el sistema de control de código fuente como ensamblados personalizados, debe asegurarse de que la cuenta de servicio Lab tiene permiso para leer la ruta de acceso en la que se protegen los ensamblados personalizados. Para obtener más información sobre la cuenta de servicio Lab, vea Cómo: Configurar la cuenta de servicio para probar e integrar flujos de trabajo. Puede conceder permisos a la cuenta de servicio usando el comando tf permissions. Por ejemplo, para conceder permisos de lectura a la cuenta de servicio Lab mydomain \ labAccount en la ruta de acceso $/MyProject/CustomAssemblies, debe ejecutar un comando similar a: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs10:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies

Personalización para tener acceso a una ubicación de destino de compilación mediante la cuenta del agente de compilación

El agente de compilación que ejecuta el flujo de trabajo de laboratorio tiene acceso a la ubicación de destino de compilación mediante la cuenta de servicio Lab. Si desea que el agente de compilación use la cuenta del agente de compilación, puede personalizar la plantilla de flujo de trabajo. En la plantilla, busque la actividad RunDeploymentScript que ejecuta los scripts de implementación. Esta actividad expone la propiedad SharedLocationForNetUse, que define la ubicación que debe realizarse utilizando la cuenta de servicio Lab. <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />Para tener acceso a la ubicación de destino bajo la cuenta del agente de compilación en lugar de la cuenta de servicio Lab, elimine la propiedad de plantilla o establezca el valor de esta propiedad en null ({x: Null}) como se muestra en este ejemplo: mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />

Personalización para tener acceso a otras ubicaciones mediante la cuenta de servicio Lab

Si la ejecución del agente de compilación bajo la cuenta de servicio Lab necesita leer ubicaciones que no son las de compilación, puede cambiar el valor de la propiedad SharedLocationForNetUse del valor predeterminado [BuildLocation] por la ubicación deseada. Por ejemplo, para la ejecución del agente de compilación bajo la cuenta de servicio Lab para tener acceso al directorio \\ contoso\scripts, debe tener: <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />

Vea también

Tareas

Crear una definición de compilación básica

Referencia

Introducción a Windows Workflow Foundation (WF) en .NET 4

Conceptos

Usar un laboratorio virtual para el ciclo de vida de la aplicación

Otros recursos

Actividades de Team Foundation LabManagement

Definir el proceso de compilación

Historial de cambios

Fecha

Historial

Motivo

Octubre de 2010

Agregadas dos ilustraciones que resumen algunos de los pasos al personalizar el flujo de trabajo.

Mejora de la información.