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 Windows Workflow, consulte esta página A introdução de um desenvolvedor ao Windows Workflow Foundation (WF) no .NET 4 no site do MSDN.

Requisitos

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Inicializando o fluxo de trabalho

Atividade raiz de 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 LabWorkflowDetails que contém os seguintes objetos:

BuildDetails

Um objeto Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails que armazena os detalhes do fluxo de trabalho de compilação, implantação e teste.

DeploymentDetails

Um objeto Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails que armazena as informações necessárias para a implantação de uma compilação no fluxo de trabalho.

EnvironmentDetails

Um objeto Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails que armazena as informações que identificam o ambiente a ser usado para um cenário de compilação, implantação e teste.

TestParameters

Um objeto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails que armazena os detalhes do parâmetro de teste que são necessários para criar a execução de teste automatizada.

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

Argumento

Tipo

Metadata

ProcessParameterMetadataCollection

Verbosity

Um valor enumerado 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 aplicativo

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 da versã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 Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber.

Obter detalhes da 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 Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail. O modelo define as seguintes propriedades:

  • Resultado retorna um objeto IBuildDetail para a variável BuildDetail.

Se a compilação é necessária de atividade

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 RunWorkflow. O modelo define as seguintes propriedades:

  • BuildDefinition é definido como a propriedade BuildDetails.BuildDefinitionName do argumento LabWorkflowParameters.

  • O argumento ProjectName é definido como a propriedade TeamProject da variável BuildDetail.

Aguarde a conclusão da compilação

Aguarde a conclusão da compilação suspende a execução até a conclusão da compilação ou decorrer um intervalo de tempo limite. 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 . Aguarde a conclusão da compilação é uma atividade WaitForWorkflow. O modelo define os seguintes valores de propriedade:

  • AllowPartiallySucceededBuild é definido como verdadeiro

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

  • MaxWaitTime é definido como infinito.

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

Definir local de compilação

Definir local de compilação atribui o local da compilação com base na variável ChildBuildDetail à propriedade BuildDetails.BuildUri do argumento LabWorkflowParameters.

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 WriteDeploymentInformation.

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber retorna o local de destino da construção para a variável BuildLocation. GetBuildLocationAndBuildNumber é uma atividade 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.

Calcular a localização da compilação necessário atividade

Se as condições de Calcular a localização necessária da compilação forem atendidas, Computar caminho de compilação adicionará subpastas de configuração da plataforma e da compilação ao local de destino.

Se o usuário selecionou ambiente armazenado atividade

Se o usuário selecionou ambiente armazenado verifica se o ambiente foi implantado e de Indicar erro acionará uma exceção se o ambiente for 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 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 a atividade 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.

Atividade de instantâneo de restauração

Na sequência Restaurar instantâneo, Obter detalhes do instantâneo calcula a ID do instantâneo, e Restaurar o ambiente de laboratório para o instantâneo realiza a restauração.

Obter detalhes do instantâneo

Obter detalhes do instantâneo é uma atividade GetLabEnvironmentSnapshotId. O modelo define as seguintes propriedades:

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

  • Resultado retorna a ID do instantâneo para a variável SnapshotId.

  • 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 RestoreLabEnvironment. O modelo define as seguintes propriedades:

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

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

Se a atividade necessária a implantação

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

Siga a atividade de implantação

Se a condição for atendida, a sequência Fazer implantação será 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 WaitForWorkflowCapabilityServices. O modelo define as seguintes propriedades:

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

  • MaxWaitTime é definido como 20 minutos.

  • RepairCapabilityBeforeWaitBegins é definido como falso.

Executar Script de implantação atividade

Executar scripts de implantação executa a sequência Executar scripts no sistema de laboratório em cada script de implantação contido na lista de propriedades DeploymentDetails.Scripts do argumento LabWorkflowParameters.

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:

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 ScriptDetails. Inicializar marcas do agente e scripts de implantação é uma atividade InitializeAgentSpecAndEnvironmentVariables. O modelo define os seguintes valores:

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

  • 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 é uma atividade Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope. 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 RunDeploymentScript. O modelo define os seguintes valores:

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

  • ThrowOnError é definido como verdadeiro.

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

Implantação de 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 WriteDeploymentInformation.

Instantâneo pós-implantação

Instantâneo pós-implantação determina se o usuário solicitou que um instantâneo do ambiente deve ser salvo depois da 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.

Tirar a atividade de instantâneo de Post-Deloyment

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

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.

Verificar 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 SnapshotLabEnvironment que cria o instantâneo. O modelo define as seguintes propriedades:

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

  • 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 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 WriteDeploymentInformation.

Executando testes

Executar 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 atividade 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 os recursos de testes 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 teste estarem prontos é uma atividade WaitForTestCapabilityServices. O modelo define as seguintes propriedades:

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

  • 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 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 tiverem passado para a atividade

Se todos os testes não tiverem passado determina se algum teste falhou e executa Definir status da compilação se a condição tiver sido atendida.

Definir status da compilação

Definir status da compilação determina se o fluxo de trabalho inclui a compilação ou a 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

Conceitos

Atividades de fluxo de trabalho de gerenciamento de laboratório