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

O Modelo Padrão (Ícone TFVC TfvcTemplate.12.xaml ou Ícone de Git GitTemplate.12.xaml) permite definir rapidamente um processo básico que compila e testa o código. Você tem opções para controlar a maneira como a Compilação do Team Foundation Build (TFBuild) compila o código, executa os testes e executa outros processos como scripts.

Introdução

  1. (Opcional) Antes de criar uma nova definição de compilação, na página inicial do Team Explorer (teclado: Ctrl + 0, H), abra a solução que você deseja compilar, de forma que ela seja especificada automaticamente na caixa Projetos.

  2. No Team Explorer, verifique se você está conectado ao projeto da equipe (teclado: Ctrl + 0, C) e, em seguida, abra a página Compilações (teclado: Ctrl + 0, B).

  3. Escolha o link Nova Definição de Compilação ou selecione uma compilação, abra seu menu de contexto e escolha Edição de Definição da Compilação.

    Dica

    Se uma mensagem de erro TF225001 for exibida, configure um controlador de compilação.

  4. Na guia Processo, em Modelo do processo de compilação, o Modelo Padrão é selecionado por padrão.

    Processo de compilação de modelo padrão

    Aviso

    Você está conectado a um Ícone de Git Projeto de equipe Git hospedado no Visual Studio Online?Você não tem os parâmetros Substituição de check-out e Projetos?

    Parâmetros de modelo padrão gito errado

    Consulte Como tenho certeza se estou usando o modelo de processo da compilação Git padrão no Visual Studio Online?

  5. Use as informações posteriores neste tópico para preencher os campos que fornecem a funcionalidade que você deseja colocar nessa definição de compilação.

  6. Depois de preencher os campos na guia Processo, especifique as opções do processo de compilação nas outras guias.

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

O que você deseja fazer em seguida?

  • Obter o código

  • Compilar o código

    • Especificar os projetos que serão compilados

    • Especificar as plataformas e as configurações que serão compiladas

    • Especificar opções de compilação

  • Testar o código e analisar o impacto de teste

  • Executar outros processos durante a compilação

  • Controlar como os servidores executam a compilação

    • Especificar quais agentes de compilação processam a compilação

    • Especificar limites de tempo do agente de compilação

  • Controlar o resultado da compilação

    • Especificar o local de saída da compilação

    • Tornar os nomes das compilações concluídas úteis para a equipe

    • Publicar símbolos com base na compilação

    • Associar e criar itens de trabalho

    • Criar um item de trabalho em caso de falha

    • Rotular o código-fonte

  • Obter respostas para perguntas comuns

Obter o código

É possível definir algumas opções para como o agente de compilação obtém o código-fonte especificado na guia Configurações de Origem.

Se desejar...

Defina este parâmetro…

Usando essa orientação…

Especificar se é necessário limpar o espaço de trabalho ou o repositório Git no agente de compilação antes de processar a compilação

Ícone TFVC TFVC: Limpar o espaço de trabalho

Ícone de Git Git: Limpar repositório

Selecione Verdadeiro para excluir todas as saídas e arquivos de código-fonte existentes antes do processamento da compilação. Use essa opção caso você queira que o processo de compilação seja o mais completo possível durante a exposição de problemas no processo de compilação.

Dica

Se o processo de compilação não exigir um espaço de trabalho ou um repositório limpo, será possível reduzir significativamente o tempo necessário à execução da compilação definindo esse valor de parâmetro como Falso.

Essa configuração não tem efeito se você usar o Controlador de Compilação Hospedado. Nesse caso, você obtém um novo diretório de trabalho a cada compilação.

Compilar uma versão específica do código-fonte

Ícone TFVC TFVC: Obter versão

Ícone de Git Git: Substituição de check-out

TFVC: especifique o versionspec que identifica a versão que você deseja compilar.

Git: especifique a ramificação ou confirme a ID para check-out.

Compilar o código

É possível usar MSBuild para compilar o código.

Especificar os projetos que serão compilados

Na caixa Projetos, em Compilação, na tabela Parâmetros do processo de compilação, é possível especificar uma ou mais soluções ou codificar projetos que serão compilados. Você deve especificar pelo menos uma solução ou um projeto.

Se estiver compilando vários projetos relacionados, você normalmente precisará adicioná-los a uma única solução e especificar essa solução na célula Projetos, em vez de listar cada projeto separadamente.

Na caixa Projetos, é possível escolher o botão de reticências (...) para abrir e usar a caixa de diálogo Soluções/Projetos para especificar as soluções ou os projetos que serão compilados.

Para preencher manualmente a caixa Projetos de um projeto da equipe TFVC, você especifica o caminho do controle de versão completo para cada projeto ou solução que deseja compilar. Você delimita cada valor com uma vírgula, conforme o seguinte exemplo mostra:

$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln

Importante

Se você usar TFVC, verifique se o caminho de cada projeto ou solução é um filho de um dos valores Pasta do Controle do Código-Fonte listados na guia Configurações de Fonte da definição da compilação.Se você usar o Git, verifique se o projeto ou a solução está no repositório Git, em uma ramificação que esteja compilando.

Especificar as plataformas e as configurações que serão compiladas

Na caixa Configurações, é possível especificar quais plataformas e configurações você deseja compilar. Por exemplo, é possível especificar que essa compilação só deve compilar a configuração de versão da versão 32 bits do projeto do C++, inclusive Versão|x86 nessa caixa.

Dica

Se tiver uma grande base de código, você poderá aumentar significativamente a velocidade com que a compilação é processada, compilando apenas as configurações e as plataformas de que precisa.

Se você deixar a caixa Configurações vazia, a configuração padrão e a plataforma definida em cada solução ou projeto são compiladas.

Na caixa Configurações, é possível escolher o botão de reticências () para abrir e usar a caixa de diálogo Configurações para especificar quais itens devem ser compilados. Também é possível especificá-los manualmente.

Cada configuração na caixa Configurações deve estar na seguinte forma:

Configuração|Plataforma

Você deve substituir os seguintes espaços reservados:

  • Configuração é um valor como Depuração, Liberação ou Todas as configurações.

  • Plataforma é um valor como Win32, x86, x64 ou Qualquer CPU.

As configurações na lista devem ser delimitadas por vírgulas.

Por exemplo, se quisesse compilar a configuração de Depuração e Versão do projeto do C#, você especificaria Debug|Any CPU, Release|Any CPU na caixa Configurações.

Os tokens usados na configuração e na plataforma devem corresponder aos tokens configurados nas propriedades da solução ou nas propriedades do projeto de código. Se eles não fossem correspondentes, você poderia notar resultados inesperados quando a compilação fosse concluída.

Dica

Se estiver compilando projetos de código individuais, em vez de um arquivo de solução, e quiser especificar Qualquer CPU como a plataforma, você deverá especificá-lo como AnyCPU, e não Any CPU.

Especificar opções de compilação

É possível controlar várias opções de compilação.

Se desejar...

Defina este parâmetro…

Usando essa orientação…

Controlar a necessidade de recompilação

Compilação, Limpar compilação

Defina como Verdadeiro se você quiser recompilar todo o código em projetos de código. Isso equivale a MSBuild /target:clean. Essa opção não tem efeito prático, a menos que você também defina Limpar repositório como Falso.

Dica

É possível reduzir significativamente o tempo necessário para compilar bases de código grandes definindo essa opção como Falso.

Validar o código em relação os diagramas de camada

Compilação, Avançado, Argumentos de MSBuild

Inclua a seguinte cadeia de caracteres nesse valor de parâmetro: /p:ValidateArchitecture=true.

Para obter mais informações, consulte Validar o código com diagramas de camada.

Especificar argumentos de linha de comando que serão passados para MS Build

Compilação, Avançado, Argumentos de MSBuild

Se o processo de compilação exigir que você passe argumentos para MSBuild, incorpore-os no parâmetro Argumentos de MSBuild. Para obter mais informações, consulte Referência de linha de comando MSBuild.

Especificar o número de bits da versão do MSBuild usada para processar a compilação

Compilação, Avançado, Plataforma MSBuild

Especifique um dos seguintes valores:

  • Especifique Auto se você quiser executar MSBuild com o mesmo número de bits de CPU do Serviço Team Foundation Build instalado no agente de compilação.

  • Especifique X86 para sempre processar essa compilação usando a versão 32 bits do MSBuild.

    Como o Visual Studio é executado como um aplicativo 32 bits, você poderia enfrentar problemas quando a compilação fosse processada por um agente de compilação com a versão 64 bits do Serviço Team Foundation Build em execução. Especificando X86, você talvez queira resolver esses tipos de problemas.

Se especificar esse valor, você deverá verificar (por exemplo, usando uma marca conforme explicado anteriormente neste tópico) se a compilação é processada por um agente de compilação hospedado por um computador de compilação 64 bits. Do contrário, haverá falha na compilação.

Executar outros processos

É possível executar outros processos durante a compilação.

Executar análise de código

Para encontrar defeitos comuns durante a compilação, é possível analisar o código. Defina o parâmetro Executar análise de código nos parâmetros de compilação avançados.

  • Selecione Como Configurado para analisar cada projeto de código no qual esse recurso está habilitado.

  • Selecione Sempre para analisar todo projeto de código, independentemente desse recurso estar habilitado nos projetos de código.

  • Selecione Nunca para ignorar a análise de código.

Para obter mais informações, consulte um dos seguintes tópicos:

Controlar como os servidores executam a compilação

É possível controlar como os servidores de compilação executam a compilação

Especificar quais agentes de compilação processam a compilação

Para especificar quais agentes de compilação são usados para processar a compilação, expanda o nó Avançado, o nó Configurações do agente e, em seguida, especifique valores dos seguintes parâmetros:

  • Filtro de Nome: é possível filtrar os agentes de compilação usados para processar essa definição de compilação digitando o nome do agente nesse campo. Também é possível especificar um conjunto de nomes usando-se os caracteres curinga * e ?. Por exemplo, você pode especificar CI* para especificar qualquer agente cujo nome comece com os caracteres CI. Entre os agentes que atenderiam a esse critério estão CI, CI1 ou CI_Agent2.

  • Filtro de Marcas: especifique uma ou mais marcas para garantir que apenas agentes de compilação com marcas correspondentes sejam executados com essa compilação. Você normalmente aplica marcas a determinados agentes de compilação para reservá-los para fins especiais. Por exemplo, você configura um agente de compilação em um computador de compilação projetado para processar as compilações de check-in restrito. Você aplica a marca restrita ao agente de compilação. Por fim, você aplica a marca restrita à definição de compilação, de forma que ela só seja processada pelo agente também marcado com a marca restrita. Para especificar marcas, você escolhe o botão de reticências ().

    Dica

    O grupo de agentes de compilação disponíveis para processar essa compilação é determinado pelo controlador de compilação especificado para essa definição de compilação.Para modificar o controlador de compilação, escolha a guia Padrões de Compilação, abra o menu Controlador de compilação e, em seguida, escolha um controlador de compilação.

  • Operador de comparação de marcas: No menu, escolha um dos seguintes valores:

    • MatchExactly: escolha esse valor se quiser que essa definição de compilação seja processada apenas pelos agentes de compilação que possuam exatamente o mesmo conjunto de marcas especificado na caixa Filtro de marcas. Se você não especificar marcas, qualquer agente poderá processar essa definição de compilação.

      Dica

      Escolhendo MatchExactly, você restringe os agentes disponíveis para essa definição de compilação apenas àqueles que tenham o conjunto exato de marcas presentes no campo Filtro de Marcas.

    • MatchAtLeast: escolha esse valor caso queira que essa definição de compilação seja processada por qualquer agente de compilação que tenha pelo menos o mesmo conjunto de marcas especificado na caixa Filtro de Marcas. Se você não especificar marcas, apenas agentes sem marcas podem processar essa definição de compilação.

Especificar limites de tempo do agente de compilação

Para especificar limites de tempo, expanda o nó Avançado, o nó Configurações do agente e, em seguida, especifique os parâmetros na tabela a seguir.

Se desejar...

Defina este parâmetro…

Usando essa orientação…

Especificar o tempo máximo permitido para que o agente de compilação processe a compilação

Tempo de Execução Máximo

Insira um valor do período de tempo 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.

Especificar o tempo máximo permitido para atribuir a solicitação de compilação a um agente de compilação

Tempo Máximo de Espera

Insira um valor do período de tempo 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.

Controlar o resultado da compilação

Especificar o Local de Saída da Compilação

Para controlar onde o TFBuild coloca as saídas de compilação, escolha:

  • SingleFolder para colocar todos os arquivos de saída de compilação na pasta-depósito.

  • PerProject para agrupar as saídas de compilação em subpastas de pasta-depósito para cada projeto de solução ou código especificado na caixa Projetos.

  • AsConfigured para deixar os binários na pasta de fontes do agente de compilação, organizada da mesma estrutura de subpasta que você vê ao compilar o código no computador de desenvolvimento no Visual Studio. Essa estrutura é definida em projetos de código.

    Se você usar essa opção, o TFBuild não copiará a saída para a pasta-depósito. Ao invés disso, é possível programar os scripts para copiar as saídas para o local especificado por TF_BUILD_BINARIESDIRECTORY, de forma que eles sejam soltos no local de preparo. Consulte scripts pós-compilação ou pós-teste.

Tornar os nomes das compilações concluídas úteis para a equipe

Você e a equipe podem usar Avançado, Formato de número da compilação para carregar dados úteis no nome de cada compilação concluída. Para os valores válidos desse parâmetro, consulte Usar números de compilação para dar nomes significativos a compilações concluídas.

Publicar Símbolos com base na Compilação

Especifique o parâmetro Caminho para publicar símbolos para indexar e publicar dados do símbolo a fim de habilitar recursos como a depuração histórica. Consulte Indexar e publicar dados de símbolo.

Associar conjuntos de alterações, confirmações e itens de trabalho

O processo de compilação vincula automaticamente cada compilação concluída com todos os conjuntos de alterações ou confirmações inseridos no código, bem como seus itens de trabalho associados. Não é possível desabilitar esse comportamento, mas em Avançado você pode decidir se deseja ou não Atualizar itens de trabalho com o número de compilação selecionando Verdadeiro ou Falso.

Como o processo de compilação determina quando associar conjuntos de alterações, confirmações e itens de trabalho?

Criar um item de trabalho em caso de falha

Para Avançado, Criar item de trabalho em caso de falha, selecione Verdadeiro se, quando a compilação falhar, você quiser que o processo de compilação crie um bug e o atribua à pessoa que Ícone TFVC fez check-in no conjunto de alterações TFVC ou Ícone de Git que enviou a confirmação de Git.

Rotular o código-fonte

Para o Ícone TFVC Controle de Versão TF, Fontes de Rótulo selecione Verdadeiro se você quiser marcar automaticamente todo arquivo de código-fonte com um rótulo para permitir que a equipe identifique facilmente a versão de cada arquivo incluída na compilação concluída. Essa configuração não se aplica a Ícone de Git projetos de equipe de Git.

Para obter informações sobre como o TFBuild determina qual versão a ser rotulada, consulte O quão boa foi a compilação?

Perguntas e respostas

Como tenho certeza se estou usando o modelo de processo da compilação Git padrão no Visual Studio Online?

Você está conectado a um Ícone de Git Projeto de equipe Git hospedado no Visual Studio Online? Você não tem os parâmetros Substituição de check-out e Projetos?

Quando você mostra detalhes, o Modelo Padrão (GitTemplate.xaml) é exibido?

O modelo de padrão gito errado

Nesse caso, selecione GitTemplate.12.xaml. Depois que você fizer isso, o parâmetro Substituição de check-out e o botão de navegação no parâmetro Projetos serão exibidos.

O modelo correto de padrão de Git

P: Como o processo de compilação determina quando associar conjuntos de alterações, confirmações e itens de trabalho?

R: cada definição de compilação mantém seu próprio registro de quais conjuntos de alterações (TFVC), confirmações (Git) e os itens de trabalho estão aguardando a associação com a próxima compilação concluída.

Por exemplo, o conjunto de alterações 382 é compilado pelas compilações A e B. Compilação A é enfileirada e concluída com êxito. Compilação B é enfileirada e falha. O conjunto de alterações 382 agora está associado à compilação concluída com êxito da Compilação A e com a compilação com falha da Compilação B. 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 da Compilação B.

Para obter informações sobre como o TFBuild determina qual versão a ser associada, consulte O quão boa foi a compilação?

P: Preciso do meu processo de compilação para realizar outras tarefas.Como posso personalizá-lo?

Unidade: Personalizar o processo