Atividades do Team Foundation Build

As atividades do Team Foundation Build são componentes fundamentais do processo de compilação no sistema do Team Foundation Build. É possível usar essas atividades para criar um processo de compilação personalizado a fim de atender aos requisitos da equipe como, por exemplo, seguir a lógica personalizada ou realizar as tarefas especializadas.

Na maioria dos casos, a melhor maneira de criar um modelo de processo de compilação personalizado é baseá-lo no Modelo Padrão (DefaultTemplate.xaml). Assim, é possível aproveitar a funcionalidade normalmente útil que já foi criada durante a personalização de partes específicas para atender às necessidades. Outra vantagem dessa abordagem é que é possível ver exemplos práticos e específicos de como você pode usar as atividades descritas por este tópico. Para obter informações sobre como criar o modelo do processo de compilação, consulte Personalizar seu modelo de processo de compilação.

Importante

Você só deve criar um processo de compilação personalizado caso precise atender a requisitos especializados.É possível usar DefaultTemplate.xaml para definir rapidamente um processo de compilação que atenda a muitos requisitos típicos.Para obter mais informações, consulte Usar o modelo padrão no processo de compilação.

Neste tópico

  • Permissões Obrigatórias

  • Referência orientada a metas para as atividades

  • Referência alfabética para as atividades

Permissões obrigatórias

Para realizar procedimentos que usem atividades do Team Foundation Build, você deve ter as seguintes permissões definidas como Permitir:

  • Editar definição de compilação

  • Fazer Check-out e Fazer Check-in para os diretórios de controle de versão relevantes (como o subdiretório BuildProcessTemplates do projeto da equipe)

  • Enfileirar compilações

Para obter mais informações, consulte Referência de permissões para o Team Foundation Server.

Referência orientada a metas para as atividades

  • Realizar Tarefas Básicas

    • Obter os valores das variáveis de ambiente

    • Testar Variáveis para Valores Nulos

    • Obter caminhos para arquivos no espaço de trabalho

    • Trabalhar com diretórios

    • Obter o caminho para o diretório de trabalho do agente de compilação

    • Baixar arquivos que não estão em um espaço de trabalho

    • Localizar arquivos

    • Gravar avisos, erros, mensagens e outros dados no log de compilação

    • Gravar metadados de compilação no data warehouse

  • Controlar o Processo de Compilação

    • Executar atividades no agente de compilação

    • Usar uma estrutura mutex nomeada para implementar um processo thread-safe

    • Restringir seções do processo de compilação com base no motivo (gatilho)

  • Compilar, Testar e Realizar Outras Tarefas

    • Usar MSBuild para compilar binários, executar análise de código e realizar outras tarefas

    • Executar Testes

    • Obter uma lista de testes afetados pela compilação

    • Iniciar um processo

  • Trabalhar com Controle de Versão

    • Associar conjuntos de alterações e itens de trabalho à compilação

    • Fazer check-in de alterações restritas

    • Avaliar políticas de check-in

    • Rotular arquivos em controle de versão

    • Obter uma lista de check-ins particulares

    • TfGet

    • TfResolve

    • TfShelve

    • TfUndo

    • TfUnshelve

    • TfWorkfold

  • Trabalhar com Itens de Trabalho

    • Associar conjuntos de alterações e itens de trabalho à compilação

    • Criar um item de trabalho

  • Trabalhar com Dados de Símbolo

    • Inserir caminhos de controle de versão e versões nos dados de símbolo nos arquivos .pdb

    • Publicar símbolos em um repositório de símbolos SymStore

  • Obter Referências para Objetos Úteis

    • Obter uma referência a um objeto para uma coleção de projeto da equipe

    • Obter uma referência a um objeto para um agente de compilação

    • Obter uma referência a um objeto para um detalhe de compilação

    • Obter uma referência a um objeto para um ambiente de compilação

Referência alfabética para as atividades

  • AgentScope

  • ApproveRequestForCheckIn

  • AssociateChangesetsAndWorkItems

  • CheckInGatedChanges

  • ConvertWorkspaceItem

  • ConvertWorkspaceItems

  • CopyDirectory

  • CreateDirectory

  • CreateWorkspace

  • DeleteDirectory

  • DeleteWorkspace

  • DownloadFile

  • DownloadFiles

  • EvaluateCheckInPolicies

  • ExpandEnvironmentVariables

  • FindMatchingFiles

  • GenerateRunSettings

  • GetApprovedRequests

  • GetBuildAgent

  • GetBuildDetail

  • GetBuildDirectory

  • GetBuildEnvironment

  • GetCommonLocalPath

  • GetCommonServerPath

  • GetImpactedTests

  • GetPendingChanges

  • GetRejectedRequests

  • GetReshelvedShelveset

  • GetShelvedChanges

  • GetTeamProjectCollection

  • GetWorkspace

  • IndexSources

  • InvokeForReason

  • InvokeProcess

  • IsNotNull<T>

  • IsNull<T>

  • LabelSources

  • LabelWorkspace

  • MSBuild

  • MSTest

  • OpenWorkItem

  • ParseWorkspaceSpec

  • PublishSymbols

  • QueryShelvesets

  • RejectRequestFromCheckIn

  • RetryRequest

  • RetryRequests

  • RevertWorkspace

  • RunOnce

  • RunTests

  • SetBuildProperties

  • SharedResourceScope

  • SyncWorkspace

  • SynchronizeRequests

  • TfGet

  • TfQueryConflicts

  • TfResolve

  • TfShelve

  • TfUndo

  • TfUnshelve

  • TfWorkfold

  • TfsBuild

  • UpdateBuildNumber

  • WriteBuildError

  • WriteBuildInformation<T>

  • WriteBuildMessage

  • WriteBuildTestError

  • WriteBuildWarning

  • WriteCustomSummaryInformation

Realizar tarefas básicas

É possível usar atividades do Team Foundation Build para realizar as seguintes tarefas:

  • Obter os valores das variáveis de ambiente

  • Obter caminhos para arquivos no espaço de trabalho

  • Trabalhar com diretórios

  • Obter o caminho para o diretório de trabalho do agente de compilação

  • Baixar arquivos que não estão em um espaço de trabalho

  • Localizar arquivos

  • Gravar avisos, erros, mensagens e outros dados no log de compilação

  • Gravar metadados sobre a compilação

Obter os valores das variáveis de ambiente (atividade ExpandEnvironmentVariables)

Use a atividade ExpandEnvironmentVariables para resolver uma ou mais variáveis de ambiente em um servidor de compilação. As variáveis de ambiente são lidas no agente de compilação caso esta atividade esteja em uma sequência AgentScope; do contrário, elas são lidas no controlador de compilação.

Dica

É possível obter bits de dados úteis das variáveis de ambiente TF_BUILD.Por exemplo, é possível obter o diretório de binários, que é o diretório do qual o processo de compilação copia arquivos de saída para o local de preparo.Consulte Variáveis de ambiente do Team Foundation Build.

Resultado de ExpandEnvironmentVariables (String) Propriedade

Retorna o resultado da operação. Por exemplo: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.

Propriedades de Argumento ExpandEnvironmentVariables

  • Entrada (String): você deve especificar a cadeia de caracteres que contém as variáveis de ambiente que deseja resolver. Você deve formatar cada variável de ambiente especificando uma propriedade MSBuild em vez de usar a notação do símbolo de porcentagem do Windows. Por exemplo: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."

  • AdditionalVariables (IDictionary<String,String>): é possível especificar um objeto IDictionary que contém todas as variáveis adicionais (como chaves) que você deseja resolver para seus valores correspondentes.

Voltar ao início

Testar variáveis para valores nulos

IsNotNull<T>

Use a atividade IsNotNull<T> para testar se uma expressão do Visual Basic como, por exemplo, uma variável que você está usando, fornecida na propriedade Valor (Object) não é Null. O resultado do teste é retornado na propriedade Resultado Boolean.

IsNull<T>

Use a atividade IsNull<T> para testar se uma expressão do Visual Basic como, por exemplo, uma variável que você está usando, fornecida na propriedade Valor (Object) é Null. O resultado do teste é retornado na propriedade Resultado Boolean.

Obter caminhos para arquivos no Espaço de Trabalho

Cada compilação tem um espaço de trabalho de controle da versão definido na guia Espaço de Trabalho da definição da compilação. O espaço de trabalho dá à compilação acesso aos arquivos de código-fonte e a todos os outros arquivos necessários no sistema de controle de versão. Team Foundation Build fornece duas atividades que é possível usar para trabalhar com arquivos no espaço de trabalho da compilação: ConvertWorkspaceIteme ConvertWorkspaceItems.

Para obter mais informações sobre espaços de trabalho de compilação, consulte Criar ou editar uma definição de compilação.

Dica

Para obter orientação detalhada passo a passo sobre como usar a atividade ConvertWorkspaceItem em um cenário típico, consulte Controlar onde o sistema de compilação coloca seus binários.

Obter o caminho para um arquivo em um Espaço de Trabalho (atividade ConvertWorkspaceItem)

Use a atividade ConvertWorkspaceItem para converter um caminho de servidor em um caminho local no agente de compilação ou para converter um caminho local no agente de compilação em um caminho de servidor.

Resultado de ConvertWorkspaceItem (String) Propriedade

Retorna o caminho convertido.

Propriedades do Argumento ConvertWorkspaceItem

  • Entrada (String): você deve fornecer o valor de caminho que deseja converter.

  • Espaço de Trabalho (Workspace): você deve fornecer uma referência ao Workspace que contenha o arquivo. Na maioria dos casos, você deve definir essa propriedade como a variável inicializada na propriedade Resultado da atividade CreateWorkspace. Caso esteja criando um processo de compilação com base em DefaultTemplate.xaml, você provavelmente deve usar a variável Workspace.

  • Direção

    • Converta um caminho de servidor em um caminho local: na propriedade Direção, selecione ServerToLocal e especifique o caminho para o arquivo no servidor na propriedade Entrada (String).

      Por exemplo, a equipe pode armazenar utilitários comuns no seguinte diretório: $/OurTeam/BuildProcess/Util. É possível criar um processo de compilação personalizado que executará o utilitário ScanBinaries.exe depois que os binários forem compilados. Se $/OurTeam/BuildProcess/Util for mapeado na guia Espaço de Trabalho da definição de compilação, será possível especificar $/OurTeam/BuildProcess/Util/ScanBinaries.exe na propriedade Entrada para obter o caminho local para o utilitário da propriedade Resultado (String).

    • Converta um caminho local para um caminho de servidor: na propriedade Direção, selecione ServerToLocal e especifique o caminho local para o arquivo no agente de compilação na propriedade Entrada.

Obter os caminhos para arquivos em um Espaço de Trabalho (atividade ConvertWorkspaceItems)

Use a atividade ConvertWorkspaceItems para converter caminhos de servidor em caminhos locais no agente de compilação ou para converter caminhos locais no agente de compilação em caminhos de servidor.

Resultado de ConvertWorkspaceItems (IList<String>) Propriedade

Retorna os valores de caminho convertidos.

Propriedades do Argumento ConvertWorkspaceItems

  • Entrada (IEnumerable<String>): você deve fornecer os valores de caminho que deseja converter.

  • Espaço de Trabalho (Workspace): você deve fornecer uma referência a Workspace que contenha os arquivos. Na maioria dos casos, você deve definir essa propriedade como a variável inicializada na propriedade Resultado da atividade CreateWorkspace.

    Dica

    Caso esteja criando um processo de compilação com base em DefaultTemplate.xaml, você provavelmente deve usar a variável Workspace.

  • Direção: selecione um dos seguintes valores:

    • Selecione ServerToLocal caso você esteja especificando uma coleção de valores de caminho do servidor na propriedade Entrada e deseja que a propriedade Resultado retorne uma lista dos valores de caminho local.

    • Selecione LocalToServer caso você esteja especificando uma coleção de valores de caminho local na propriedade Entrada e deseja que a propriedade Resultado retorne uma lista dos valores de caminho de servidor.

Trabalhar com diretórios

É possível trabalhar com diretórios usando-se várias atividades em Team Foundation Build.

Dica

Caso deva trabalhar com diretórios que façam parte do espaço de trabalho do controle de versão da compilação, você deve usar as atividades do espaço de trabalho em seu lugar.Para obter mais informações, consulte Obter Caminhos para Arquivos no Espaço de Trabalho.

Criar um diretório (atividade CreateDirectory)

Use a atividade CreateDirectory para criar um diretório, cujo nome você especifica na propriedade Diretório (String).

Copiar um diretório (atividade CopyDirectory)

Use a atividade CopyDirectory para copiar recursivamente todo o conteúdo de um diretório, que você especifica na propriedade Origem (String), para outro diretório, que você especifica na propriedade Destino (String). O diretório que você especifica na propriedade Destino já deve existir. Diretórios ou subdiretórios vazios não são copiados.

Excluir um diretório (atividade DeleteDirectory)

Use a atividade DeleteDirectory para excluir um diretório, cujo nome você especifica na propriedade Diretório (String). Se o diretório que você está excluindo contiver subpastas, você deverá definir a propriedade Recursivo (Boolean) como True; do contrário, haverá falha na compilação.

Obter o Caminho para o Diretório de Trabalho do Agente de Compilação (atividade GetBuildDirectory)

Use a atividade GetBuildDirectory para obter o caminho literal para o diretório de trabalho do agente de compilação da propriedade Resultado (String). Só é possível usar esta atividade dentro de uma atividade AgentScope.

Voltar ao início

Manipular dados de caminho

Atividade GetCommonLocalPath

Use a atividade GetCommonLocalPath para obter o caminho para a pasta pai comum de nível mais baixo de uma ou mais pastas locais. Por exemplo, se você especificar LocalItems (IEnumerable<String>) assim:

{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}

Logo, Resultado (String) retornará:

c:\Code\Fabrikam-3\TestScrum\Main

Atividade GetCommonServerPath

Use a atividade GetCommonServerPath para obter o caminho para a pasta pai comum de nível mais baixo de uma ou mais pastas locais. Por exemplo, se você especificar ServerItems (IEnumerable<String>) assim:

{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}

Logo, Resultado (String) retornará:

$/TestScrum/Main

Baixar arquivos que não estão em um espaço de trabalho

Use a atividade DownloadFiles para baixar um ou mais arquivos. Ignore a atividade DownloadFile.

Atividade DownloadFiles

Use a atividade DownloadFiles para baixar um ou mais arquivos do controle de versão.

Dica

Se os arquivos que você deseja baixar estiverem no espaço de trabalho de compilação, você deverá acessá-los usando a atividade ConvertWorkspaceItem.

Propriedades do Argumento DownloadFiles

  • LocalPath (String) Você deve especificar um valor:

    • Se você estiver baixando um único arquivo, especifique o caminho local e o nome que você deseja dar à cópia local do arquivo que está baixando; por exemplo, "c:\Docs\readme.txt".

    • Se você estiver baixando vários arquivos, especifique o caminho local para o diretório no qual você deseja baixar os arquivos; por exemplo, "c:\Docs\".

  • ServerPath ()String) Você deve especificar um valor:

    • Se você estiver baixando um único arquivo, especifique o caminho do servidor e o nome do arquivo que está baixando; por exemplo, "$/Docs/readme.txt".

    • Se você estiver baixando vários arquivos, especifique o caminho do servidor para o diretório que contém os arquivos que deseja baixar; por exemplo, "$/Docs/".

  • Recursão (RecursionType):

    • OneLevel: baixa o arquivo ou os arquivos no diretório especificado por você na propriedade ServerPath.

    • Full: baixa os arquivos no diretório especificado por você na propriedade ServerPath e em todos os arquivos em todos os subdiretórios.

  • Versão (String): é possível especificar um versionspec. Para baixar a versão atual, deixe essa propriedade definida como Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Para obter mais informações sobre versionspecs, consulte Sintaxe de linha de comando.

  • DeletionID (Int32): você só deverá especificar essa propriedade se estiver baixando um arquivo que tenha sido excluído do controle de versão. É possível obter esse valor interativamente digitando-se tf dir /deleted em um prompt de comando. (Para obter mais informações, consulte Dir Command.) No entanto, Team Foundation Build não fornece uma atividade interna para obter um DeletionID. Para usar essa propriedade, você deve obter ou criar uma atividade personalizada que forneça essa funcionalidade.

Voltar ao início

Atividade DownloadFile

Ignore a atividade DownloadFile. A atividade DownloadFiles é a maneira mais fácil de baixar um ou mais arquivos.

Localizar arquivos (atividade FindMatchingFiles)

Use a atividade FindMatchingFiles para localizar arquivos. Especifique os critérios de pesquisa na propriedade MatchPattern (String). Nesta propriedade, é possível especificar um argumento que inclua os seguintes elementos:

  • A sintaxe compatível com o argumento searchPattern do método Directory GetFiles(String, String).

  • ** para especificar uma pesquisa recursiva. Por exemplo:

    • Para procurar arquivos de texto no diretório de fontes, é possível especificar algo semelhante ao seguinte valor para a propriedade MatchPattern: String.Format("{0}\**\*.txt", SourcesDirectory).

    • Para procurar arquivos de texto no diretório de fontes em um ou mais subdiretórios chamados de txtfiles, é possível especificar algo que seja semelhante ao seguinte valor para a propriedade MatchPattern: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).

Você coleta o resultado da operação na propriedade Resultado (IEnumerable<String>).

Gravar avisos, erros, mensagens e outros dados no log de compilação

WriteCustomSummaryInformation

Use a atividade WriteCustomSummaryInformation para gravar uma mensagem no resumo da compilação, exibida para usuários na janela de resultados da compilação.

Propriedades do Argumento WriteCustomSummaryInformation

  • Mensagem (String): você deve especificar a mensagem que deseja exibir no resumo da compilação.

    É possível incluir hiperlinks na mensagem usando-se uma das seguintes sintaxes:

    [link text](url)
    [link text] (url)
    

    Por exemplo:

    For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
    
  • SectionDisplayName (String): você deve especificar o nome da seção na qual deseja que a mensagem seja exibida. Se várias instâncias de WriteCustomSummaryInformation com o mesmo valor de SectionKey especificarem valores SectionDisplayName diferentes, o sistema usará o SectionDisplayName da primeira instância no modelo do processo de compilação.

  • SectionKey (String): você deve especificar um identificador para o nome da seção na qual deseja que a mensagem seja exibida. O valor que você especifica deve estar de acordo com as regras descritas em NameProperty.

    Por exemplo, se você implementar duas instâncias de WriteCustomSummaryInformation com um valor SectionKey de “MySection”, quando a compilação for processada, ambas as mensagens serão exibidas na mesma seção do resumo da compilação.

  • SectionPriority (Int32): é possível especificar a prioridade da seção, o que acaba determinando a posição relativa da seção no resumo da compilação. Quanto menor for o valor, mais alta a seção será exibida no resumo. Se várias instâncias de WriteCustomSummaryInformation com o mesmo valor SectionKey especificarem valores SectionPriority diferentes, o sistema usará o valor SectionPriority da primeira instância no modelo do processo de compilação.

Voltar ao início

Atividade WriteBuildMessage

Use a atividade WriteBuildMessage para gravar uma mensagem informativa no log de compilação. Você deve especificar a mensagem na propriedade Mensagem (String). Também é possível indicar a importância da mensagem modificando-se o valor da propriedade Importância (BuildMessageImportance).

Dica

  • Os usuários do processo de compilação podem contar com a filtragem de detalhamento para reduzir a sobrecarga de informações tanto em relação ao que devem exibir quanto em relação aos dados armazenados no depósito.É possível ajudar a tornar essa filtragem mais eficiente usando-se uma abordagem mais profunda e consistente para definir a propriedade Importância das mensagens de compilação.Para obter mais informações, consulte Gerenciar informações de compilação e detalhamento de controle.

  • Se você estiver usando as configurações padrão, a mensagem não será gravada no log de compilação.Para resolver esse problema, execute uma das seguintes etapas:

    • Defina a WriteBuildMessage propriedade Importância como Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    • Na guia Processo da definição de compilação, defina o parâmetro de processo Verbosidade do log como Detailed ou Diagnostic.

Atividade WriteBuildWarning

Use a atividade WriteBuildWarning para gravar uma mensagem de aviso no log de compilação. Os avisos são exibidos com um ponto de exclamação amarelo na janela de resultados da compilação. Você deve especificar a mensagem na propriedade Mensagem (String).

Os avisos de compilação só são registrados em log quando a equipe define o detalhamento como Mínimo ou superior. Para obter mais informações, consulte Gerenciar informações de compilação e detalhamento de controle.

Atividade WriteBuildError

Use a atividade WriteBuildError para gravar uma mensagem de erro de compilação no log de compilação. Os erros são exibidos com um ponto de exclamação vermelho na janela de resultados da compilação. Quando um erro é gravado no log da compilação, a compilação é classificada, no máximo, como Partially Succeeded. Você deve especificar a mensagem na propriedade Mensagem (String).

Os erros são sempre registrados em log, independentemente da configuração do detalhamento. Para obter mais informações, consulte Gerenciar informações de compilação e detalhamento de controle.

Atividade WriteBuildTestError

Use a atividade WriteBuildTestError para gravar uma mensagem de erro de teste no log de compilação. Os erros são exibidos com um ponto de exclamação vermelho na janela de resultados da compilação. Quando um erro é gravado no log da compilação, a compilação é classificada, no máximo, como Partially Succeeded. Você deve especificar a mensagem na propriedade Mensagem (String).

Os erros são sempre registrados em log, independentemente da configuração do detalhamento. Para obter mais informações, consulte Gerenciar informações de compilação e detalhamento de controle.

Atividade WriteBuildInformation<T>

Use a atividade WriteBuildInformation<T> para colocar um objeto no log de compilação. Quando um usuário exibe o log na janela de resultados da compilação, o objeto é renderizado usando-se a reflexão.

Propriedades do Argumento WriteBuildInformation<T>

  • Valor (Object): você deve especificar o objeto que você deseja colocar no log de compilação. Para que o objeto seja renderizado na janela de resultados da compilação, o objeto deve implementar IBuildInformationNode e definir Type como um dos seguintes valores InformationTypes:

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: é possível especificar False para fazer o pai desse objeto ser o pai desta atividade, ou você pode especificar True para criar o pai do objeto IBuildDetail.

    Um efeito dessa propriedade é como as informações são exibidas na janela de resultado da compilação. Se você especificar False, as informações serão recuadas e alinhadas com a saída de outras atividades que são anteriores e posteriores à atividade WriteBuildInformation<T> e que estão no mesmo nível. Se você especificar True, as informações não serão recuadas.

Voltar ao início

Gravar metadados no Data Warehouse

É possível gravar metadados sobre a compilação no data warehouse:

  • Gravar o Número da Compilação (Atividade UpdateBuildNumber)

  • Gravar Pontos de Dados-chave sobre a Compilação (atividade SetBuildProperties)

Dica

Se essas atividades não derem suporte aos metadados que você deseja gravar, será possível usar a atividade GetBuildDetail para obter uma referência ao objeto IBuildDetail e atribuir os dados diretamente ao objeto usando-se essa referência.

Gravar o número da compilação (atividade UpdateBuildNumber)

Use a atividade UpdateBuildNumber para definir o número da compilação (ou o nome). Esta atividade realiza as seguintes etapas:

  1. Constrói um número de compilação com base em uma expressão que determina o formato do número de compilação. O processo de compilação normalmente aceita essa expressão de um argumento do fluxo de trabalho, fornecido por um parâmetro na guia Processo de uma definição de compilação.

  2. Define o número da compilação (ou o nome) gravando o valor resultante na propriedade BuildNumber.

UpdateBuildNumber Result (String) Propriedade

Resultado: retorna o novo valor BuildNumber.

Propriedades de UpdateBuildNumber

Voltar ao início

Gravar pontos de dados-chave sobre a compilação (atividade SetBuildProperties)

Use SetBuildProperties para gravar pontos de dados-chave no objeto IBuildDetail, que gerencia o armazenamento de dados sobre cada compilação no data warehouse. Muitos desses dados são exibidos para o usuário na janela de resultados da compilação.

Propriedades de SetBuildProperties

  • PropertiesToSet: você deve marcar as caixas de seleção dos nomes das propriedades que deseja definir.

  • BuildNumber (String): é possível definir o BuildNumber da compilação, que você talvez considere o nome da compilação.

    Dica

    Caso queira definir esse valor com base em configurações especificadas pelo usuário na guia Processo da definição da compilação, você provavelmente deve usar a atividade UpdateBuildNumber em vez dessa propriedade.

  • CompilationStatus (BuildPhaseStatus): é possível definir o status da compilação (CompilationStatus). (A atividade MSBuild também define esse valor automaticamente.)

  • DropLocation (String): é possível registrar o local para soltar na propriedade DropLocation.

    Dica

    Caso defina essa propriedade, você não cria efetivamente o local para soltar.Em vez disso, você usa essa propriedade para armazenar, no data warehouse, o local para soltar, que normalmente cria usando a atividade CreateDirectory.

  • KeepForever (Boolean): será possível definir a propriedade KeepForever como True se você quiser ignorar configurações na guia Política de Retenção da definição da compilação e manter a compilação concluída indefinidamente.

  • LabelName (String): é possível definir a propriedade LabelName para registrar o rótulo que você usou para marcar essa compilação nos arquivos de código-fonte no controle de versão. Normalmente, você define essa propriedade de acordo com o valor na propriedade Nome da atividade LabelWorkspace.

    Importante

    Team Foundation Build precisa desses dados para associar conjuntos de alterações e itens de trabalho a compilações.Se você não fornecer esses dados, a atividade AssociateChangesetsAndWorkItems falhará.

  • LogLocation (String): é possível usar o registro da propriedade LogLocation do caminho do arquivo UNC para a pasta na qual o processo de compilação coloca o arquivo de log.

    Dica

    Você provavelmente não precisará usar essa propriedade no processo de compilação personalizado.Essa propriedade destina-se principalmente ao uso pelo arquivo UpgradeTemplate.xaml para dar suporte a processos de compilação herdados.

  • Qualidade (String): é possível registrar a qualidade da compilação na propriedade Quality.

  • SourceGetVersion (String): é possível usar a propriedade SourceGetVersion para registrar a especificação da versão para a qual as fontes são recuperadas para esta compilação.

  • Status (BuildStatus): é possível registrar o status geral da compilação na propriedade Status. Por exemplo, é possível usar essa propriedade para indicar se a compilação foi bem-sucedida ou falhou.

  • TestStatus (BuildPhaseStatus): você usa a propriedade TestStatus para registrar o status geral de testes que foram executados nessa compilação. Por exemplo, é possível usar essa propriedade para indicar se os testes que você executou nessa compilação foram bem-sucedidos ou falharam.

Voltar ao início

Controlar o processo de compilação

É possível usar atividades Team Foundation Build para controlar o processo de compilação das seguintes maneiras:

  • Executar atividades no agente de compilação

  • Usar uma estrutura mutex nomeada para implementar um processo thread-safe

  • Restringir seções do processo de compilação com base no motivo (gatilho)

Executar atividades no agente de compilação (atividade AgentScope)

Use a atividade AgentScope para incluir as partes do processo de compilação que você deseja executar no agente de compilação.

Propriedades do Argumento AgentScope

  • Seleção de Agente

    • MaxWaitTime (TimeSpan): é possível especificar o tempo máximo que o processo de compilação espera até que um agente da compilação esteja disponível. É possível digitar um valor no formato hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 01:30:45 e a compilação não for atribuída a um agente de compilação após 1 hora, 30 minutos e 45 segundos. Especifique um valor de 00:00: 00 se você quiser dar ao controlador de compilação tempo ilimitado para encontrar um agente de compilação para processar essa definição de compilação.

      Importante

      É possível evitar fazer o backup da fila de compilações especificando-se um valor diferente de zero razoável na propriedade MaxWaitTime.

    • ReservationSpec (AgentReservationSpec): é possível restringir o tipo de agente de compilação que irá processar as atividades que essa atividade contém. Por exemplo, é possível especificar que apenas os agentes de compilação que tenham uma determinada marca sejam usados para processar as atividades dentro da atividade AgentScope.

  • Execução

    • MaxExecutionTime (TimeSpan): é possível especificar o tempo máximo permitido para que essa atividade AgentScope seja concluída. É possível digitar um valor no formato hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 04:30:15 e o agente de compilação não tiver concluído seu trabalho depois de 4 horas, 30 minutos e 15 segundos. Especifique um valor de 00:00:00 se você quiser dar ao agente de compilação tempo ilimitado para processar a compilação.

      Dica

      É possível evitar fazer backup da fila de compilações especificando-se um valor diferente de zero razoável na propriedade MaxExecutionTime.

  • Escopo

    • DataToIgnore: ignore esta propriedade.

Voltar ao início

Usar uma estrutura chamada mutex para implementar um processo Thread-safe (atividade SharedResourceScope)

Use a atividade SharedResourceScope para implementar uma estrutura chamada mutex (exclusão mútua) para garantir que o segmento embutido do processo de compilação seja “thread safe”.

Um uso típico dessa atividade é incluir as partes de um processo de compilação que deve acessar um recurso compartilhado que precisa ser acessado somente por um processo de cada vez. Por exemplo, talvez você queira que as compilações sejam gravadas, em ordem sequencial, em um único arquivo de texto em um compartilhamento de arquivos. Para garantir que esse tipo de processo funcione corretamente, você deve implementá-lo em uma atividade SharedResourceScope.

É possível encontrar outro exemplo em DefaultTemplate.xaml, no qual a chamada da atividade PublishSymbols é inserida em uma atividade SharedResourceScope:

  1. Sequência (Sequence) >

  2. Executar no Agente (AgentScope) >

  3. Tentar Compilar, Testar e Associar Conjuntos de Alterações e Itens de Trabalho (TryCatch [Try]) >

  4. Sequência (Sequence) >

  5. Obter Testes Afetados, Indexar Fontes e Publicar Símbolos (Parallel) >

  6. Se SourceAndSymbolServerSettings.IndexSources Ou SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  7. Indexar Fontes e Publicar Símbolos para Compilações Disparadas (InvokeForReason) >

  8. Se SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  9. Tentar Publicar Símbolos (TryCatch [Try]) >

  10. Sincronizar o Acesso ao Armazenamento de Símbolos (SharedResourceScope) >

  11. Publicar Símbolos (PublishSymbols)

Propriedades do Argumento SharedResourceScope

  • ResourceName (String): você deve especificar um valor. Todas as instâncias das atividades SharedResourceScope serão executadas uma de cada vez se tiverem o mesmo valor ResourceName na coleção de projetos da equipe (mesmo se estiverem em modelos de definição da compilação diferentes).

  • MaxExecutionTime (TimeSpan): é possível especificar o tempo máximo permitido para que a atividade SharedResourceScope seja concluída. É possível digitar um valor no formato hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 04:30:15 e a atividade SharedResourceScope não estiver concluída após 4 horas, 30 minutos e 15 segundos. Especifique um valor de 00:00: 00 se você quiser permitir tempo ilimitado para processar a atividade SharedResourceScope.

    Dica

    É possível evitar fazer backup da fila de compilações especificando-se um valor diferente de zero razoável na propriedade MaxExecutionTime.

  • MaxWaitTime (TimeSpan): é possível especificar o tempo máximo de espera para o processo de compilação na fila processar a atividade SharedResourceScope. É possível digitar um valor no formato hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 01:30:45 e a atividade SharedResourceScope não estiver processada depois de 1 hora, 30 minutos e 45 segundos. Especifique um valor de 00:00:00 se quiser permitir que o tempo ilimitado do processo de compilação aguarde na fila.

    Dica

    É possível evitar fazer o backup da fila de compilações especificando-se um valor diferente de zero razoável na propriedade MaxWaitTime.

Voltar ao início

Restrinja seções do processo de compilação com base no motivo (gatilho) (atividade InvokeForReason)

Use a atividade InvokeForReason para incluir um segmento do processo de compilação que você deseja executar somente nas compilações que foram executadas para um motivo específico. Os motivos da compilação normalmente são definidos pelo disparador selecionado pelo usuário na guia Disparador da definição da compilação. É possível especificar, na propriedade Motivo, um ou mais valores do motivo que você deseja permitir. Para obter mais informações, consulte Especificar disparadores e razões de compilação.

Voltar ao início

Compilar, testar e realizar outras tarefas

É possível usar atividades Team Foundation Build para compilar binários, executar testes e realizar outras tarefas:

  • Usar MSBuild para compilar binários, executar análise de código e realizar outras tarefas

  • Executar Testes

  • Obter uma lista de testes afetados pela compilação

Use MSBuild para compilar binários, executar análise de código e realizar outras tarefas (atividade MSBuild)

Use a atividade MSBuild para compilar binários, executar análise de código e usufruir qualquer outra funcionalidade fornecida por MSBuild.

Resultado de MSBuild

Nenhuma propriedade dessa atividade retorna um resultado. No entanto, essa atividade definirá CompilationStatus como Failed se algum erro de compilação for registrado em log.

Propriedades do Argumento MSBuild

  • AdditionalVCOverrides (String): se você definir GenerateVsPropsFile como True, o conteúdo dessa propriedade será inserido no arquivo .vsprops gerado.

  • CommandLineArguments (String): é possível especificar argumentos de linha de comando que você queira passar para MSBuild.

  • Configuração (String): é possível especificar a configuração a ser compilada. Por exemplo: “debug” ou “release”.

  • GenerateVSPropsFile (Boolean): se essa propriedade estiver definida como True, MSBuild irá gerar um arquivo .vsprops padrão a ser passado para projetos do C++. Esse arquivo incluirá o diretório de saída para projetos do C++ e o que você especificar na propriedade AdditionalVCOverrides.

  • LogFile (String): é possível especificar o nome do arquivo de log que MSBuild deve criar.

  • LogFileDropLocation (String): é possível especificar o caminho UNC totalmente qualificado para o diretório onde você deseja que MSBuild solte o arquivo de log.

  • MaxProcesses (Int32): é possível especificar o número máximo de processos criados por MSBuild.

  • OutDir (String) É possível especificar o diretório onde MSBuild solta os binários compilados. Para obter mais informações, consulte Controlar onde o sistema de compilação coloca seus binários.

  • Plataforma (String): é possível especificar a plataforma de compilação do MSBuild. Por exemplo: “Any CPU”, “x86” ou “x64”.

  • Projeto (String): é possível especificar a solução ou o projeto de código criado por MSBuild.

  • ResponseFile (String): é possível especificar o arquivo de resposta usado por MSBuild.

  • RunCodeAnalysis (CodeAnalysisOption): é possível especificar se a análise de código deve ser sempre executada, jamais deve ser executada ou se deve ser executada de acordo com as configurações do projeto.

  • Destinos (IEnumerable<String>): é possível especificar os destinos que serão compilados.

  • TargetsNotLogged (IEnumerable<String>): é possível especificar os destinos para os quais os eventos de ProjectStarted não devem ser registrados em log.

  • ToolPath (String): é possível especificar o caminho para a ferramenta.

  • ToolPlatform (ToolPlatform): é possível especificar a plataforma para a ferramenta. Especifique Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto para detectar a plataforma com base no sistema operacional atual.

  • Detalhamento (BuildVerbosity): é possível especificar o detalhamento do log gerado por MSBuild.

Para obter mais informações sobre muitas opções de MSBuild afetadas pelas propriedades MSBuild, consulte Referência de linha de comando MSBuild.

Voltar ao início

Executar testes

É possível executar testes usando-se a atividade RunTests ou a atividade MSTest.

Executar testes usando-se a atividade RunTests

Use a atividade RunTests para utilizar o Agile Test Runner na execução de testes. Se a compilação compilar e testar binários com plataformas incompatíveis, você deverá executar essa atividade separadamente em relação aos assemblies em cada plataforma.

Para obter mais informações, consulte Executar testes no processo de compilação.

Propriedades Básicas de RunTests

  • TestSources (IEnumerable<String>): você deve especificar uma lista dos arquivos de assembly que contêm os testes que você deseja executar.

  • ExecutionPlatform (ExecutionPlatformType) É possível especificar a plataforma de binários que você deseja testar. Para obter mais informações, consulte Agile Test Runner.

  • ExecutionTimeout (Int32): é possível especificar o tempo máximo que o processo de compilação espera para que a execução do teste seja concluída. Especifique um valor de 0 caso você queira dar à atividade RunTests tempo ilimitado para executar os testes.

  • KeepAlive (Boolean): será possível definir essa propriedade como True se você quiser que o processo do Agile Test Runner continue em execução no agente de compilação após a conclusão da atividade RunTests.

  • RunSettings (String): não documentado.

  • TestCaseFilter (String): é possível usar essa propriedade para executar um subconjunto dos casos de teste. Para obter mais informações, consulte Especificar critérios para os testes executados pelo Visual Studio Test Runner.

  • UpdateFrequency (Int32): não documentado.

  • UpdateFrequencyTimeout (Int32): não documentado.

Propriedades de Publicação de RunTests

É possível usar as seguintes propriedades para publicar os resultados do teste para a coleção de projetos da equipe:

  • PublishResults (Boolean): você deverá definir essa propriedade como True se quiser publicar resultados de teste.

  • Flavor (String): é possível especificar a configuração da compilação com a qual você executou os testes cujos resultados deseja publicar.

  • Plataforma (String): é possível especificar a plataforma da compilação na qual você executou os testes cujos resultados deseja publicar.

  • RunName (String): é possível especificar o nome da execução de teste. Os clientes do processo de compilação verão esse nome no resumo da janela de resultados da compilação. Se você não fornecer um nome, o sistema irá gerar um automaticamente.

Representantes

  • OnTestCompleted: não documentado.

  • OnTestRunCompleted: não documentado.

Voltar ao início

Executar testes usando a atividade MSTest

Use esta atividade para executar testes com MSTest.exe.

Propriedades Básicas de MSTest

Para começar, decida como você deseja executar os testes e, em seguida, especifique valores para as propriedades apropriadas.

Propriedades de Filtragem de MSTest

É possível usar as seguintes propriedades para filtrar quais testes são executados:

  • Categoria (String): é possível filtrar os testes com base em suas categorias de teste. Esta propriedade é equivalente à opção /category do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/category) e Definindo categorias de teste para agrupar os testes.

  • MaxPriority (Int32): é possível especificar a prioridade máxima de testes que você deseja executar. Somente testes cuja prioridade seja menor que ou igual a esse valor serão executados. Você deve especificar um inteiro positivo que seja igual a ou maior que a propriedade MinPriority ou deverá especificar -1 se você não quiser especificar uma prioridade máxima.

    Dica

    Se você tiver atribuído prioridades a seus testes, as propriedades MinPriority e MaxPriority poderão ser um mecanismo importante para ajudar a definir um equilíbrio entre testes completos e compilações mais rápidas.

  • MinPriority (Int32): é possível especificar a prioridade mínima de testes que você deseja executar. Somente os testes cuja prioridade seja maior que ou igual a esse valor serão executados. Você deve especificar um inteiro positivo que seja igual a ou menor que a propriedade MaxPriority ou deverá especificar -1 se não quiser especificar uma prioridade mínima.

  • TestNames (IEnumerable<String>): você pode especificar os nomes dos testes que você deseja executar. Esta propriedade é equivalente à opção /test do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/test).

Propriedades de Publicação de MSTest

É possível usar as seguintes propriedades para publicar os resultados do teste para a coleção de projetos da equipe:

  • Publicar (Boolean): você deverá definir essa propriedade como True se quiser publicar resultados de teste.

  • Flavor (String): é possível especificar a configuração da compilação com a qual você executou os testes cujos resultados deseja publicar. Esta propriedade é equivalente à opção /flavor do comando MSTest.exe. Para obter mais informações, consulte Opções da linha de comando para publicar resultados de teste.

  • Plataforma (String): é possível especificar a plataforma da compilação na qual você executou os testes cujos resultados deseja publicar. Esta propriedade é equivalente à opção /platform do comando MSTest.exe. Para obter mais informações, consulte Opções da linha de comando para publicar resultados de teste.

  • TestConfigId (Int32): é possível especificar a ID de uma configuração de gerenciamento de teste existente a ser associada ao teste cujos resultados você deseja publicar. Esta propriedade é equivalente à opção /testconfigid do comando MSTest.exe. Para obter mais informações, execute MSTest /? no prompt de comando Visual Studio.

  • TestConfigName (String): é possível especificar o nome de uma configuração de gerenciamento de teste existente a ser associado à execução de teste cujos resultados você deseja publicar. Esta propriedade é equivalente à opção /testconfigname do comando MSTest.exe. Para obter mais informações, execute MSTest /? no prompt de comando Visual Studio.

Outras Propriedades de MSTest

  • CommandLineArguments (String): para obter informações sobre as opções de linha de comando adicionais que é possível especificar, consulte opções da linha de comando de MSTest.exe.

  • PathToResultsFilesRoot (String): é possível especificar a raiz do caminho para o diretório no agente de compilação onde MSTest.exe coloca os arquivos de resultados (arquivos .trx).

  • ToolPath (String): é possível especificar o caminho para o diretório que contém a versão de MSTest.exe que você deseja executar. Se você não especificar um caminho, Team Foundation Build determinará automaticamente o caminho com base nos dados nas listas ou nos contêineres de teste.

Voltar ao início

Obter uma lista de testes afetada pela compilação (atividade GetImpactedTests)

Use a atividade GetImpactedTests para identificar alterações de código na compilação atual e para produzir uma lista de testes afetados por essas alterações. A atividade grava a lista de testes afetados no data warehouse para ajudar membros da equipe de teste a determinar quais testes eles devem executar após a conclusão dessa compilação. Para obter mais informações sobre como a equipe pode usar esses dados, consulte Que testes devem ser executados desde a compilação anterior?.

Dica

Esta atividade não tem efeito em compilações de check-in restrito ou em compilações particulares.

Condições Obrigatórias

A atividade só GetImpactedTests poderão funcionar quando as seguintes condições forem verdadeiras:

  • A atividade MSTest foi executada com um arquivo de configurações de teste (especificado na propriedade TestSettings ) que coleta dados de impacto de teste. É possível usar o arquivo Traceandtestimpact.testsettings, gerado automaticamente, ou é possível usar outro arquivo de configurações de teste no qual a caixa de seleção Impacto de Teste é marcada. Para obter mais informações, consulte Como coletar dados para verificar quais testes devem ser executados após alterações feitas no código.

  • A atividade GetImpactedTests identificou com êxito a compilação anterior. Para obter mais informações, consulte a próxima seção.

Como a atividade GetImpactedTests Identifica a Compilação Anterior

A atividade GetImpactedTests produz resultados comparando a compilação atual com a compilação anterior. A atividade identifica a compilação anterior usando o seguinte processo:

  1. Se você especificar a propriedade BaselineBuildDropLocation, a compilação que gerou os binários será identificada como a compilação anterior.

  2. Se você não especificar a propriedade BaselineBuildDropLocation, a atividade identificará a compilação anterior procurando no data warehouse a compilação mais recente correspondente a todos os seguintes critérios:

    • A compilação tem o mesmo BuildDefinitionUri da compilação atual.

    • O Status da compilação é Succeeded ou PartiallySucceeded.

    • A compilação tem um DropLocation.

    • A compilação não é uma compilação de check-in restrito ou uma compilação particular.

Propriedades de Resultado de GetImpactedTests

  • CodeChanges (CodeChangeList): retorna uma lista das alterações que foram feitas para cada método no código entre a compilação e a compilação anterior. Os métodos são analisados no nível de MSIL (Microsoft Intermediate Language).

  • ImpactedTests (TestList): retorna uma lista dos testes que foram afetados pelas alterações de código entre a compilação anterior e esta compilação.

Propriedades de Argumento de GetImpactedTests

  • Diversos

    • Compilação: você deve fornecer o objeto IBuildDetail da compilação. É possível usar a atividade GetBuildDetail para obter uma referência para esse objeto.
  • Diversos

    • Assemblies (IEnumerable<String>): você deve especificar uma lista de assemblies que deseja que esta atividade examine. Normalmente você cria esses assemblies nesta compilação.

    • AssociatedChangesets (IList<Changeset>): é possível especificar os conjuntos de alterações que você deseja associar aos resultados de impacto de teste. Normalmente você deseja especificar os conjuntos de alterações que você está compilando. É possível obter uma referência para esses conjuntos de alterações com base na atividade AssociateChangesetsAndWorkItems.

    • BinariesRoot (String): você deve especificar o caminho para os binários dos quais os assemblies dependem. É possível obter esse valor usando-se a atividade GetBuildDirectory.

    • Espaço de trabalho (Workspace): você deve fornecer uma referência para o espaço de trabalho da compilação. É possível obter essa referência com base na propriedade Resultado da atividade CreateWorkspace.

    • BaselineBuildDropLocation (String): é possível especificar o caminho da pasta para soltar que contém a compilação concluída que você deseja que a atividade GetImpactedTests compare com a compilação atual. Se você não especificar essa propriedade, a atividade tentará consultar o sistema de compilação para a compilação anterior. Para obter mais informações, consulte “Como a Atividade GetImpactedTests Identifica a Compilação Anterior” anteriormente nesta seção.

Voltar ao início

Iniciar um processo (atividade InvokeProcess)

Use a atividade InvokeProcess para iniciar um processo (executar um programa) no servidor de compilação. Esta atividade é basicamente um wrapper em Start.

Resultado de InvokeProcess (Int32) Propriedade

Retorna o ExitCode do processo.

Propriedades do Argumento de InvokeProcess

  • FileName (String): você deve especificar o FileName do processo que deseja iniciar (o programa que deseja executar). Por exemplo: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.

  • Argumentos (String): é possível especificar os argumentos de linha de comando (Arguments) que você deseja passar para o processo.

  • EnvironmentVariables (IDictionary<String,String>): é possível especificar variáveis de ambiente adicionais (EnvironmentVariables) e seus valores.

  • OutputEncoding (Encoding): é possível especificar a codificação usada para ler os fluxos de saída (StandardOutputEncoding) e de erro (RedirectStandardError). Em muitos casos, o valor padrão é o melhor valor para essa propriedade:

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): é possível especificar o diretório de trabalho (WorkingDirectory) no qual você deseja executar o processo.

    Por exemplo, talvez você queira executar o utilitário MarkBins.exe em binários compilados. Para restringir o escopo no qual o utilitário é executado, é possível chamar GetBuildDirectory e colocar o resultado nessa propriedade.

Para exibir as saídas padrão e de erro do processo

  1. Na última atividade InvokeProcess, clique duas vezes em Clique duas vezes em para exibir.

  2. Arraste uma atividade WriteBuildMessage da Caixa de Ferramentas para que a atividade seja exibida em Handle Standard Output e defina a propriedade WriteBuildMessage Mensagem como stdOutput.

  3. Arraste uma atividade WriteBuildError da Caixa de Ferramentas para que ela seja exibida em Handle Standard Output e defina a propriedade WriteBuildMessage Mensagem como errOutput.

Trabalhar com controle de versão

É possível usar atividades Team Foundation Build para realizar as seguintes tarefas de controle de versão:

  • Associar conjuntos de alterações e itens de trabalho à compilação

  • Fazer check-in de alterações restritas

  • Avaliar políticas de check-in

  • Rotular arquivos em controle de versão

Associar conjuntos de alterações e itens de trabalho à compilação (atividade AssociateChangesetsAndWorkItems)

Use a atividade AssociateChangesetsAndWorkItems para vincular cada compilação concluída a todos os conjuntos de alterações que foram codificados e seus itens de trabalho associados.

Cada definição da compilação mantém seu próprio registro de quais conjuntos de alterações e itens de trabalho ficam aguardando para serem associados à próxima compilação concluída. Por exemplo, as compilações A e B podem compilar o conjunto de alterações 382. A Compilação A é enfileirada e concluída com êxito, mas a Compilação B é enfileirada e falha. O Conjunto de Alterações 382 agora está vinculado à Compilação A concluída com êxito e à Compilação B com falha. O Conjunto de Alterações 382 não será vinculado à próxima compilação concluída da Compilação A, mas será vinculado à próxima compilação concluída com êxito da Compilação B.

Resultado de AssociateChangesetsAndWorkItems (IList<Changeset>) Propriedade

Retorna os conjuntos de alterações que foram associados à compilação.

Propriedades de Argumento de AssociateChangesetsAndWorkItems

  • CurrentLabel (String): deixe essa propriedade vazia.

  • LastLabel (String): deixe essa propriedade vazia.

  • UpdateWorkItems (Boolean): será possível definir o valor dessa propriedade como True se você quiser preencher o campo Corrigido dos itens de trabalho associados ao número de compilação. Do contrário, defina o valor como False.

Voltar ao início

Alterações de check-in restrito (atividade CheckInGatedChanges)

Use a atividade CheckInGatedChanges para fazer o check-in do controle de versão das alterações de código que dispararam uma compilação de check-in restrito. Essa atividade também associa a compilação aos itens de trabalho associados aos conjuntos de alterações.

Dica

Para funcionar corretamente, essa atividade deverá ser colocada depois de todas implementações das atividades MSBuild e MSTest no modelo.

Resultado de CheckInGatedChanges (Changeset) Propriedade

Retorna o conjunto de alterações que contém as alterações de check-in.

Propriedades do Argumento CheckInGatedChanges

  • IgnoreErrors (Boolean): defina essa propriedade como False para permitir que só haja check-in dos arquivos caso as propriedades CompilationStatus e TestStatus tenham um valor de Succeeded. Defina essa propriedade como True para permitir o check-in dos arquivos, independentemente dos valores dessas propriedades.

    Dica

    É possível usar a atividade SetBuildProperties para definir as propriedades CompilationStatus e TestStatus.

  • UpdateWorkItems (String): defina esse valor como True caso você queira popular o campo Corrigido dos itens de trabalho associados ao número de compilação. Do contrário, defina-o como False.

Voltar ao início

Avaliar políticas de check-in (atividade EvaluateCheckInPolicies)

Use a atividade EvaluateCheckInPolicies para executar políticas de check-in no servidor de compilação. Esta atividade executa as políticas de check-in em vigor para pastas especificadas na guia Espaço de Trabalho da definição de compilação. A compilação falhará se as políticas de check-in falharem e o motivo da compilação for CheckInShelveset (uma compilação de check-in restrito) ou ValidateShelveset (uma compilação privada).

Importante

As políticas de check-in são avaliadas no servidor de compilação, e não no computador cliente do desenvolvedor.

O uso mais eficiente dessa atividade é garantir portões de qualidade mais fortes usando-a com compilações de check-in restrito. Se você usar a atividade assim, o usuário será impedido de ignorar as políticas de check-in. Esta atividade é mais útil para os seguintes tipos de políticas de check-in:

  • A política de check-in interna de Work Items.

  • Políticas de check-in personalizadas projetadas para serem avaliadas no servidor de compilação

Esta atividade não é útil para avaliar as políticas de check-in internas Builds ou Code Analysis, porque é possível executar esses processos de forma mais eficiente em uma compilação direta usando-se as atividades MSBuild e MSTest.

Para obter mais informações, consulte os seguintes recursos:

Propriedades do Argumento EvaluateCheckInPolicies

  • Espaço de trabalho (Workspace): você deve especificar o espaço de trabalho que deseja avaliar. Na maioria dos casos, você deve definir essa propriedade como a variável inicializada na propriedade Resultado da atividade CreateWorkspace. Caso esteja criando um processo de compilação com base em DefaultTemplate.xaml, você provavelmente deve usar a variável Workspace.

Voltar ao início

Rotular arquivos em controle de versão

É possível rotular arquivos usando-se atividades Team Foundation Build:

  • Rotular o código-fonte que você está compilando

  • Rotular arquivos

Rotular o código-fonte que você está compilando (atividade LabelWorkspace)

Você deve rotular arquivos de código-fonte em controle de versão para que a equipe possa identificar facilmente qual versão de cada arquivo está incluída em uma determinada compilação concluída. Use a atividade LabelWorkspace para incluir essa etapa no processo de compilação.

Propriedades do Argumento LabelWorkspace

  • Nome (String): você deve especificar o nome do rótulo.

  • Filho (LabelChildOption): é possível especificar como identificar itens que já tenham rótulos correspondentes ao rótulo especificado. Esta propriedade é equivalente à opção /child do comando tf label.

  • Espaço de trabalho (Workspace): você deve fornecer uma referência para o espaço de trabalho da compilação. Na maioria dos casos, você deve definir essa propriedade como a variável inicializada na propriedade Resultado da atividade CreateWorkspace. Caso esteja criando um processo de compilação com base em DefaultTemplate.xaml, você provavelmente deve usar a variável Workspace.

  • Comentar (String): é possível especificar um comentário para o rótulo. Esta propriedade é equivalente à opção /comment do comando tf label.

  • Escopo (String): é possível especificar um escopo para o rótulo. Esta propriedade é equivalente ao argumento @scope do comando tf label.

Para obter mais informações sobre parâmetros tf label, consulte Label Command (Team Foundation Version Control).

Voltar ao início

Rotular arquivos (atividade LabelSources)

Use a atividade LabelSources para rotular arquivos no controle de versão.

Dica

Será possível rotular frequentemente os arquivos de código-fonte que está compilando mais efetivamente se você usar a atividade LabelWorkspace.

Propriedades do Argumento LabelSources

  • Itens (IEnumerable<String>): você deve especificar os itens que deseja rotular. Cada String é equivalente a um argumento itemspec do comando tf label.

  • Nome (String): você deve especificar o nome do rótulo.

  • Escopo (String): você deve especificar um escopo para o rótulo. Esta propriedade é equivalente ao argumento @scope do comando tf label.

  • Recursion (RecursionType): será possível especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full se você quiser rotular todos os arquivos em uma hierarquia de diretório. Do contrário, é possível especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.

  • Versão (String): você deve fornecer a versão dos itens que você deseja rotular. Esta propriedade é equivalente à opção /version do comando tf label.

  • Filho (LabelChildOption): é possível especificar como identificar itens que já tenham rótulos correspondentes ao rótulo especificado. Esta propriedade é equivalente à opção /child do comando tf label.

  • Comentar (String): é possível especificar um comentário para o rótulo. Esta propriedade é equivalente à opção /comment do comando tf label.

Para obter mais informações sobre parâmetros tf label, consulte Label Command (Team Foundation Version Control).

Voltar ao início

Obter uma lista de check-ins particulares (atividade QueryShelvesets)

Use a atividade QueryShelvesets para obter uma lista de check-ins particulares que atendam aos critérios. Em seguida, é possível usar a atividade TfUnshelve para recuperar o conteúdo de qualquer check-in particular.

Resultado de QueryShelvesets (IList<Shelveset>)

Propriedades do Argumento QueryShelvesets

Atividade TfGet

Esta atividade envolve Comando Obter.

Atividade TfResolve

Esta atividade envolve Resolve Command.

Atividade TfShelve

Esta atividade envolve Shelve comando.

Atividade TfUndo

Esta atividade envolve Comando Desfazer.

Atividade TfUnshelve

Esta atividade envolve Comando unshelve.

Atividade TfWorkfold

Esta atividade envolve Workfold Command.

Trabalhar com itens de trabalho

É possível trabalhar com itens de trabalho usando-se atividades Team Foundation Build:

  • Associar conjuntos de alterações e itens de trabalho à compilação

  • Criar um item de trabalho

Criar um item de trabalho (atividade OpenWorkItem)

Use a atividade OpenWorkItem para criar um item de trabalho.

Resultado OpenWorkItem (WorkItem) Propriedade

Retorna o novo item de trabalho.

Propriedades do Argumento OpenWorkItem

  • AssignedTo (String): você deve especificar a pessoa para quem deseja atribuir o item de trabalho.

  • Título (String): você deve especificar o título do item de trabalho.

  • Tipo (String): você deve especificar o tipo de item de trabalho. Entre os valores Tipo típicos estão os seguintes exemplos: “Bug”, “Issue” e “Task”.

  • Comentar (String): é possível adicionar um comentário ao histórico do item de trabalho.

  • CustomFields (IDictionary<String,String>): é possível pode especificar o valor de um ou mais campos do item de trabalho.

Voltar ao início

Trabalhar com dados de símbolo

É possível trabalhar com dados de símbolo usando-se duas atividades Team Foundation Build: IndexSources e PublishSymbols.

Um uso típico dessas atividades é habilitar a depuração de IntelliTrace. Se quiser habilitar a depuração de IntelliTrace, você deverá primeiro chamar a atividade IndexSources, preparar os dados de símbolo e, em seguida, chamar a atividade PublishSymbols para publicar os dados em um repositório de símbolos SymStore.

Para obter mais informações sobre a depuração de IntelliTrace, consulte Depurar seu aplicativo gravando execução de código com o IntelliTrace.

Inserir caminhos de controle de versão e versões nos dados de símbolo nos arquivos PDB (atividade IndexSources)

Use a atividade IndexSources para inserir caminhos e versões de controle de versão nos dados de símbolo nos arquivos .pdb.

Propriedades do Argumento IndexSources

  • FileList (IEnumerable<String>): você deve especificar o caminho completo e o nome para cada arquivo de símbolo. É possível usar a atividade FindMatchingFiles para fornecer esse argumento.

    É possível usar ** para especificar uma pesquisa recursiva. Por exemplo, é possível chamar FindMatchingFiles usando o seguinte valor na propriedade MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

Voltar ao início

Publicar símbolos em um repositório de símbolos SymStore (atividade PublishSymbols)

Use a atividade PublishSymbols para publicar os dados de símbolo nos arquivos PDB em um repositório de símbolos SymStore. Esta atividade é basicamente um wrapper em SymStore.exe. Para obter informações sobre repositórios de símbolo SymStore e como preparar um, consulte Indexar e publicar dados de símbolo.

Importante

Os dados poderão ser corrompidos se compilações simultâneas tentarem publicar no mesmo compartilhamento de arquivos de símbolos.Para reduzir esse risco, você só deve chamar essa atividade em uma atividade SharedResourceScope.

Resultado de PublishSymbols (String) Propriedade

Retorna a ID da transação retornada por SymStore.exe.

Propriedades do Argumento PublishSymbols

  • FileList (IEnumerable<String>): você deve especificar o caminho completo e o nome de cada arquivo do símbolo. É possível usar a atividade FindMatchingFiles para fornecer esse argumento.

    Por exemplo, é possível chamar FindMatchingFiles usando o seguinte valor na propriedade MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

  • StorePath (String): você deve especificar o caminho do arquivo UNC para a pasta raiz do repositório de símbolos SymStore.

  • CommandLineArguments (String): para obter informações sobre argumentos adicionais que é possível passar para SymStore.exe, consulte Opções de Linha de Comando de SymStore.

  • Comentários (String): é possível especificar comentários de transação gravados no arquivo de histórico da transação no repositório de símbolos. Essa propriedade é equivalente ao parâmetro /c Comment do comando SymStore.exe. Para obter mais informações, consulte Opções de Linha de Comando de SymStore.

  • ProductName (String): é possível especificar o nome do produto, registrado no arquivo de histórico da transação no repositório de símbolos. Por exemplo, é possível definir essa propriedade como o nome de definição da compilação (Name), que você pode obter com base na propriedade BuildDefinition chamando GetBuildDetail. Essa propriedade é equivalente ao parâmetro /t Product do comando SymStore.exe. Para obter mais informações, consulte Opções de Linha de Comando de SymStore.

  • StoreCompressed (Boolean): é possível definir esse valor como True para armazenar arquivos no repositório de símbolos como arquivos compactados. Do contrário, os arquivos serão armazenados descompactados. Essa propriedade é equivalente ao parâmetro /compress do comando SymStore.exe. Para obter mais informações, consulte Opções de Linha de Comando de SymStore.

  • Versão (String): por exemplo, é possível definir essa propriedade como o número da compilação (BuildNumber) que você pode obter chamando GetBuildDetail. Essa propriedade é equivalente ao parâmetro /v Version do comando SymStore.exe. Para obter mais informações, consulte Opções de Linha de Comando de SymStore.

Voltar ao início

Obter referências para objetos úteis

É possível obter referências a objetos úteis usando-se atividades Team Foundation Build.

Obter uma referência para o objeto para uma coleção de projeto da equipe (atividade GetTeamProjectCollection)

Use a atividade GetTeamProjectCollection para obter, a partir da propriedade Resultado, uma referência a um objeto TfsTeamProjectCollection. Este objeto de início é importante; por exemplo, é possível usá-lo para se conectar a um servidor da camada de aplicativo para Team Foundation.

Obter uma referência ao objeto IBuildAgent (atividade GetBuildAgent)

Use a atividade GetBuildAgent para obter, a partir da propriedade Resultado, uma referência ao objeto IBuildAgent. Só é possível usar esta atividade dentro de uma atividade AgentScope.

Obter uma referência ao objeto IBuildDetail (atividade GetBuildDetail)

Use a atividade GetBuildDetail para obter, a partir da propriedade Resultado, uma referência ao objeto IBuildDetail. É possível usar esse objeto para obter e, em alguns casos, definir, dados sobre a compilação atual.

Voltar ao início

Obter uma referência ao objeto BuildEnvironment (atividade GetBuildEnvironment)

Use a atividade GetBuildEnvironment para obter, por meio da propriedade Resultado, uma referência ao objeto BuildEnvironment. Você normalmente usa essa propriedade para executar as seguintes tarefas:

  • Use o objeto Environment para determinar se o segmento atual do fluxo de trabalho está sendo executado no controlador de compilação ou no agente de compilação.

  • Use o objeto CustomAssemblyPath para obter o caminho para os assemblies que contêm as atividades personalizadas no agente de compilação.

Voltar ao início

Atividades que não se destinam para que você modifique em um processo de compilação personalizado

Algumas atividades não se destinam para que você modifique um processo de compilação personalizado.

ApproveRequestForCheckIn

Ignore esta atividade.

Voltar ao início

Atividade CreateWorkspace

Ignore esta atividade.

Voltar ao início

DeleteWorkspace

Ignore esta atividade.

Voltar ao início

GenerateRunSettings

Ignore esta atividade.

Voltar ao início

GetApprovedRequests

Ignore esta atividade.

Voltar ao início

GetPendingChanges

Ignore esta atividade.

Voltar ao início

GetRejectedRequests

Ignore esta atividade.

Voltar ao início

GetReshelvedShelveset

Ignore esta atividade.

Voltar ao início

GetShelvedChanges

Ignore esta atividade.

Voltar ao início

GetWorkspace

Ignore esta atividade.

Voltar ao início

ParseWorkspaceSpec

Ignore esta atividade.

Voltar ao início

RejectRequestFromCheckIn

Ignore esta atividade.

Voltar ao início

RetryRequest

Ignore esta atividade.

Voltar ao início

RetryRequests

Ignore esta atividade.

Voltar ao início

RevertWorkspace

Ignore esta atividade.

Voltar ao início

RunOnce

Não documentado na versão atual.

SyncWorkspace

Ignore esta atividade.

Voltar ao início

SynchronizeRequests

Ignore esta atividade.

Voltar ao início

Atividade TfsBuild

Ignore esta atividade.

Voltar ao início

TfQueryConflicts

Ignore esta atividade.

Voltar ao início

Consulte também

Conceitos

Usar o modelo padrão no processo de compilação

Implantar e configurar um controlador de compilação

Implantar e configurar agentes de compilação

Outros recursos

Designer de Fluxo de Trabalho do Visual Studio 2010

Windows Workflow Foundation

Referência do MSBuild

Exibir resultados da compilação