Compartilhar via


LabDefaultTemplate Atividades de fluxo de trabalho

 

Este tópico descreve as atividades do Windows Workflow no arquivo LabDefaultTemplate.11.xaml. LabDefaultTemplate define o processo de fluxo de trabalho do Lab Management que permite compilar, implantar e testar seu aplicativo em um ambiente de laboratório. Para saber mais sobre o fluxo de trabalho do Windows, consulte esta página Introdução de um desenvolvedor para o Windows Workflow Foundation (WF) no .NET 4 no site do MSDN.

Requisitos

  • O Visual Studio Enterprise, Visual Studio Test Professional

Inicializando o fluxo de trabalho

Atividade raiz processo

A raiz do LabDefaultTemplate é a atividade TfsBuild.Process. Este ActivityBuilder inicializa os argumentos globais para a definição de compilação do fluxo de trabalho com base na entrada fornecida na janela Definição de Compilação e no Assistente de Parâmetros de Fluxo de Trabalho de Laboratório.

Argumentos

O argumento LabWorkflowParameters contém os dados fornecidos no Assistente de Parâmetros de Fluxo de Trabalho de Laboratório. Esse argumento é um objeto b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabWorkflowDetailsClass que contém os seguintes objetos:

BuildDetails

A b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_BuildDetailsObject objeto que armazena os detalhes da compilação, implantar e testar o fluxo de trabalho.

DeploymentDetails

A b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabEnvironmentDetailsObject objeto que armazena as informações necessárias para a implantação de uma compilação no fluxo de trabalho.

EnvironmentDetails

A b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabEnvironmentDetailsObject objeto que armazena as informações que identificam o ambiente para usar para uma compilação, implantar e testar o cenário.

TestParameters

A b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunTestDetailsObject objeto que armazena os detalhes de parâmetro de teste que são necessários para criar a execução do teste automatizado.

Os seguintes argumentos também são declarados no escopo global:

Argumento

Tipo

Metadata

ProcessParameterMetadataCollection

Verbosity

Um valor enumerado T:Microsoft.TeamFoundation.Build.Workflow.Verbosity que especifica a quantidade de informações gravadas no log.

BuildNumberFormat

Um String que especifica o formato do número da versão.

SupportedReasons

Um valor enumerado BuildReasonque especifica o motivo da compilação.

Sequência do fluxo de trabalho de implantação do aplicativo

Fluxo de trabalho de implantação de aplicativos

A sequência Fluxo de trabalho de implantação de aplicativo controla todo o cenário de compilação, implantação e teste.

Fluxo de trabalho de implantação de aplicativo declara as seguintes variáveis:

  • BuildDetail: um objeto IBuildDetail.

  • LabEnvironmnetUri: um String que especifica o URI do ambiente no qual a compilação é implantada.

  • BuildLocation: um String que especifica o local da compilação.

  • SnapshotId: um String que especifica o identificador de um instantâneo de máquina virtual.

  • QueueBuildId: um Int32 que especifica o identificador da compilação na fila.

Executando a compilação

Atualizar Número de Compilação

Atualizar número da versão expande e retorna o número da versão no argumento BuildNumberFormat. Atualizar número da versão é uma atividade a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_UpdateBuildNumber.

Obter detalhes de compilação

Obter detalhes da compilação retorna os dados que são necessários para executar ou acessar a compilação que foi especificada no Assistente de Fluxo de Trabalho. O objeto IBuildDetail é armazenado na variável BuildDetail.

Obter detalhes da compilação é uma atividade a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_GetBuildDetail. O modelo define as seguintes propriedades:

  • Resultados retorna um objeto IBuildDetail para o BuildDetail variável.

Se a compilação é atividade necessária

Se for necessário compilação determina se uma nova compilação é necessária para um processo de compilação do Team System. Se as condições forem atendidas, o fluxo de trabalho executará a sequência Compilação.

Criar atividade

A sequência Compilação inicia a compilação, aguarda a conclusão da compilação e define o local da compilação.

Iniciar fluxo de trabalho de compilação

Iniciar fluxo de trabalho de compilação enfileira uma nova compilação no controlador de compilação especificado e retorna a ID da compilação enfileirada na variável QueueBuildId. Iniciar fluxo de trabalho de compilação é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunWorkflow. O modelo define as seguintes propriedades:

  • BuildDefinition é definido como o BuildDetails.BuildDefinitionName propriedade o LabWorkflowParameters argumento.

  • O ProjectName argumento é definido como o TeamProject propriedade o BuildDetailvariável.

Aguarde a conclusão da compilação

Aguardar a conclusão da compilação suspende a execução até que a compilação estiver concluída ou um intervalo de tempo limite é transcorrido. A atividade acionará uma exceção se o tempo limite for atingido. A atividade retorna o status da compilação na variável BuildStatus, além dos dados sobre a nova compilação na variável ChildBuildDetail . Aguardar a conclusão da compilação é um b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForWorkflow atividade. O modelo define os seguintes valores de propriedade:

  • AllowPartiallySucceededBuild é definido como true

  • BuildDetails retorna os novos dados da compilação para a variável ChildBuildDetail.

  • MaxWaitTime é definido como infinito.

  • QueueBuildId retorna a id da fila de compilação QueueBuildId variável.

Definir local de compilação

Definir o local de compilação atribui a localização da compilação do ChildBuildDetail variável para o BuildDetails.BuildUri propriedade do LabWorkflowParameters argumento.

Implantando o aplicativo

Atualizar resumo de implantação

Atualizar resumo de implantação grava o nome do ambiente de destino da implantação na página da compilação. Atualizar resumo de implantação é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation.

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber retorna o local de destino da construção para a variável BuildLocation. GetBuildLocationAndBuildNumber é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetBuildLocationAndBuildNumber. O modelo define as seguintes propriedades:

  • BuildDetails é definido como o objeto BuildDetails contido no argumento LabWorkflowParameters

  • BuildNumber retorna o número da versão da variável BuildNumber.

  • Resultado retorna o local da compilação para a variável BuildLocation

  • SelectedBuild retorna um objeto IBuildDetail para a variável SelectedBuildDetail que contém os dados da compilação no servidor de compilação.

Local de construção necessários a atividade de computação

Se o localização necessária da compilação de computação condições forem atendidas, caminho de compilação de computação adiciona subpastas de configuração da plataforma e da compilação para o local de destino.

Se o usuário selecionou a atividade do ambiente armazenados

Se o usuário selecionou ambiente armazenado verifica se o ambiente foi implantado e indicar erro lança uma exceção se o ambiente é armazenado na biblioteca.

Obter ambiente de laboratório

Obter ambiente de laboratório retorna o URI do ambiente para a variável LabEnvironmentUri. Obter ambiente de laboratório é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetLabEnvironmentUri. O modelo define as seguintes propriedades:

  • LabEnvironmentName é definido como o valor da propriedade EnvironmentDetails.LabEnvironmentName do argumento LabWorkflowParameters.

  • ProjectName é definido como o valor da propriedade TeamProject da variável BuildDetail.

  • Resultado retorna o URI do ambiente de laboratório para a variável LabEnvironmentUri.

  • TeamProjectLabLocationName é definido como o valor da propriedade EnvironmentDetails.HostGroupName do argumento LabWorkflowParameters.

  • TfsServerUrl é definido como nulo.

Se as atividades de restauração do instantâneo

Se a restauração de instantâneo determina se o usuário solicitou que o ambiente fosse restaurado para um instantâneo limpo. Se a condição for atendida, a sequência Restaurar instantâneo será executada; do contrário, Limpar instantâneo não especificado gravará uma mensagem de aviso no resumo da compilação.

Restaurar a atividade de Snapshot

No restauração do instantâneo seqüência, obter detalhes do instantâneo calcula a id do instantâneo, e restaurar o ambiente de laboratório para instantâneo executa a restauração.

Obter detalhes do instantâneo

Obter detalhes do instantâneo é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetLabEnvironmentSnapshotId. O modelo define as seguintes propriedades:

  • LabEnvironmentUri é definido como o valor de LabEnvironmentUri variável.

  • Resultados retorna a id do instantâneo para o SnapshotId variável.

  • SnapshotName é definido como a propriedade EnvironmentDetails.SnapshotName do argumento LabWorkflowParameters.

Restaurar o ambiente de laboratório para o instantâneo

Restaurar o ambiente de laboratório para o instantâneo é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RestoreLabEnvironment. O modelo define as seguintes propriedades:

  • LabEnvironmentUri é definido como o valor de LabEnvironmentUrivariável.

  • SnapshotId é definido como o valor da variável SnapshotId.

Se for necessário de implantação de atividade

Se necessária a implantação determina se o usuário solicitou uma implantação.

Realizar atividade de implantação

Se a condição for atendida, o fazer implantação seqüência é executada.

Esperar os recursos de fluxo de trabalho estarem prontos

Esperar os recursos de fluxo de trabalho estarem prontos suspende a execução até que os recursos de fluxo de trabalho do ambiente estejam prontos ou um intervalo de tempo limite seja atingido. Se o intervalo de tempo limite for excedido, uma exceção será acionada. Esperar os recursos de fluxo de trabalho estarem prontos é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForWorkflowCapabilityServices. O modelo define as seguintes propriedades:

  • LabEnvironmentUri é definido como o valor de LabEnvironmentUri variável.

  • MaxWaitTime é definido como 20 minutos.

  • RepairCapabilityBeforeWaitBegins é definido como falso.

Execução de atividade de Script de implantação

Scripts de implantação executar executa o Executar Script no sistema de laboratório seqüência em cada script de implantação que está contida no DeploymentDetails.Scripts lista de propriedades a LabWorkflowParameters argumento.

Execute o Script na atividade do sistema de laboratório

A sequência Executar scripts no sistema de laboratório executa o script especificado em uma máquina virtual no ambiente. Executar scripts no sistema de laboratório declara as seguintes variáveis:

  • scriptDetails: b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ScriptDetailsObject

Inicializar marcas do agente e script de implantação

Inicializar marcas do agente e script de implantação expande as macros e as marcas do script, além de retornar os resultados em um objeto b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ScriptDetailsObject. Inicializar marcas do agente e scripts de implantação é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_InitializeAgentSpecAndEnvironmentVariables. O modelo define os seguintes valores:

  • BuildLocation é definido como o valor de BuildLocation variável.

  • DeploymentScriptDetails é definido como o valor da cadeia de caracteres DeploymentDetails.Scripts iterada.

  • LabEnvironmentUri definido como o valor da variável LabEnvironmentUri.

  • Resultado retorna o script expandido para a variável scriptDetails.

Escopo do agente de laboratório

Escopo do agente de laboratório determina se o agente de laboratório está instalado e em execução na máquina virtual de destino, além de chamar Script de implantação em execução para executar o script. Uma exceção será acionada se algum dos scripts falhar em um computador. Escopo do agente de laboratório é um a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_AgentScopeatividade. O modelo define as seguintes propriedades:

  • MaxExecutionTime é definido como infinito.

  • MaxWaitTime é definido como 5 minutos.

  • ReservationSpec é definido como o objeto Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec, que é a propriedade AgentSpec da variável scriptDetails.

Script de implantação em execução

Script de implantação em execução executa o script de implantação na máquina virtual de destino. Script de implantação em execução é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunDeploymentScript. O modelo define os seguintes valores:

  • ScriptDetails é definido como o valor de scriptDetails variável.

  • ThrowOnError é definido como verdadeiro.

  • SharedLocationForNetUse é definido como o valor da variável BuildLocation.

Implantação do aplicativo bem-sucedida

Implantação de Aplicativo Bem-sucedida grava informações no resumo da compilação. Implantação de Aplicativo Bem-sucedida é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation.

Instantâneo de implantação do POST

Instantâneo pós-implantação determina se o usuário solicitou que um instantâneo do ambiente deve ser salvo após a implantação. Se essa condição for atendida, a sequência Tirar instantâneo após a implantação será executada. Do contrário, Instantâneo pós-implantação não especificado grava uma mensagem de aviso no log.

Levar a atividade de instantâneo de Post Deloyment

Tirar instantâneo pós-implantação seqüência

Tirar instantâneo após a implantação declara as seguintes variáveis:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String O modelo define o valor padrão como o valor da propriedade BuildNumber da variável BuildDetails.

Verifique a atividade de nome do instantâneo

Verificar o nome do instantâneo determina se um nome do instantâneo foi especificado. Se a condição for atendida, o nome especificado será usado; do contrário, o valor padrão será usado.

Tirar instantâneo após a implantação

Tirar instantâneo após a implantação é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_SnapshotLabEnvironment que cria o instantâneo. O modelo define as seguintes propriedades:

  • LabEnvironmentUri é definido como o valor de LabEnvironmentUri variável.

  • SnapshotChainId retorna a ID do instantâneo para a variável PostDeploymentSnapshotChainId.

  • SnapshotName é definido como o valor da variável PostDeploymentSnapshotName.

Instantâneo criado com êxito

Instantâneo criado com êxito grava o nome do instantâneo no resumo da compilação. Instantâneo criado com êxito é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation.

O link de conexão foi adicionado ao instantâneo

O link de conexão foi adicionado ao instantâneo grava a URL do instantâneo no resumo da compilação. O link de conexão foi adicionado ao instantâneo é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation.

Executando testes

Execução de testes no ambiente atividade

Executar testes no ambiente determina se os testes automatizados foram solicitados. Se a condição for atendida, a sequência Executar testes será executada.

Executar atividades de testes

Executar Testes

Executar testes declara as seguintes variáveis:

  • TestCapabilityInfo: Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. O modelo define o valor padrão como um novo objeto TestRunStatistics.

Esperar os recursos de teste estarem prontos

Esperar os recursos de teste estarem prontos suspende a execução até que o recurso de teste do ambiente estejam pronto ou um intervalo de tempo limite seja atingido. Se o intervalo de tempo limite for excedido, uma exceção será acionada.

Esperar os recursos de teste estarem prontos é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForTestCapabilityServices. O modelo define as seguintes propriedades:

  • LabEnvironmentUri é definido como o valor de LabEnvironmentUri variável.

  • MaxWaitTime é definido como 20 minutos.

  • RepairCapabilityBeforeWaitBegins é definido como falso.

Executando testes

Executando testes executa os testes e retorna os resultados de teste. Executando testes é uma atividade b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ExecuteRemoteTestRun. O modelo define os seguintes valores:

  • MaxWaitTime é definido como infinito.

  • BuildNumber é definido como o valor da variável BuildNumber.

  • TestDirectory é definido como o valor da variável BuildLocation.

  • LabEnvironmentUri é definido como o valor da variável LabEnvironmentUri.

  • TestParameters é definido como o objeto TestParameters contido no objeto LabWorkflowParameters.

  • Resultado retorna o objeto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails que contém os resultados de teste para a variável TestResults.

  • Título define o nome da execução de teste como o valor da propriedade BuildNumber da variável BuildDetail.

Se todos os testes não passaram a atividade

Se todos os testes passaram não determina se todos os testes falharam e executa Definir status da compilação se a condição for atendida.

Definir status da compilação

Definir status da compilação determina se o fluxo de trabalho inclui a compilação ou implantação do aplicativo. Se essa condição for atendida, Êxito parcial definirá o status do fluxo de trabalho como o valor BuildStatus.PartiallySucceeded. Caso contrário, Falha define a variável BuildStatus como Failed.

Consulte também

Atividades de fluxo de trabalho de gerenciamento de laboratório