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:
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.
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
- BuildNumberFormat (String): você deve fornecer uma expressão que especifica o formato de números da compilação. Para obter informações sobre a sintaxe da expressão, consulte Usar números de compilação para dar nomes significativos a compilações concluídas.
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:
Sequência (Sequence) >
Executar no Agente (AgentScope) >
Tentar Compilar, Testar e Associar Conjuntos de Alterações e Itens de Trabalho (TryCatch [Try]) >
Sequência (Sequence) >
Obter Testes Afetados, Indexar Fontes e Publicar Símbolos (Parallel) >
Se SourceAndSymbolServerSettings.IndexSources Ou SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Indexar Fontes e Publicar Símbolos para Compilações Disparadas (InvokeForReason) >
Se SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Tentar Publicar Símbolos (TryCatch [Try]) >
Sincronizar o Acesso ao Armazenamento de Símbolos (SharedResourceScope) >
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.
Para executar testes em contêineres de teste (abordagem recomendada), use as seguintes propriedades:
TestContainers (IEnumerable<String>): você deve especificar os contêineres de teste dos testes que deseja executar. Esta propriedade é equivalente à opção /testcontainer do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/testcontainer).
SearchPathRoot (String): é possível especificar a raiz do caminho para o diretório no qual haverá a procura de contêineres de teste e suas dependências. Se você não especificar um valor, a atividade de MSTest tentará encontrar os arquivos em locais típicos.
TestSettings (String): é possível especificar um arquivo de configuração de execução de teste a ser usado. Esta propriedade é equivalente à opção /testsettings do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/testsettings).
Para executar testes em listas de testes, use as seguintes propriedades:
TestLists (IEnumerable<String>): você deve especificar as listas de testes que deseja executar. Esta propriedade é equivalente à opção /testlist do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/testlist) e Listas de definição de teste para agrupar os testes.
TestMetadata (String): você deve especificar o arquivo de metadados que contém as listas de testes que deseja executar. Esta propriedade é equivalente à opção /testmetadata do comando MSTest.exe. Para obter mais informações, consulte Opções de Linha de Comando de MSTest.exe (/testmetadata).
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:
Se você especificar a propriedade BaselineBuildDropLocation, a compilação que gerou os binários será identificada como a compilação anterior.
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
Na última atividade InvokeProcess, clique duas vezes em Clique duas vezes em para exibir.
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.
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:
Para obter informações sobre as políticas de check-in internas, consulte Add Check-In Policies.
Para obter informações sobre as políticas de check-in personalizadas, consulte Como Criar Políticas de Check-in Personalizadas no Visual Studio Team Foundation Server.
Para obter informações sobre compilações de check-in restrito, consulte Usar um processo de compilação de check-in restrito para validar alterações
Para obter informações sobre compilações particulares, consulte Enfileirar uma compilação
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
VersionControlServer (VersionControlServer): você deve especificar um VersionControlServer.
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