Compilar repositórios TFVC

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Importante

O TFVC é compatível somente com pipelines clássicos e não com YAML.

Escolha o repositório a ser compilado

Ao editar um pipeline que usa um repositório TFVC, você tem as opções a seguir.

  • Clean
  • Especificar caminho local
  • Fontes de rótulo

Nome do repositório

Nome do repositório TFVC.

Mapeamentos (workspace)

Inclua com um valor de tipo Mapear apenas as pastas necessárias ao pipeline de build. Se uma subpasta de uma pasta mapeada contiver arquivos que não são necessárias ao pipeline de build, mapeie-a com um valor de tipo Encobrir.

Não se esqueça de Mapear todas as pastas que contenham arquivos necessários ao pipeline de build. Por exemplo, se você adicionar outro projeto, talvez seja necessário adicionar outro mapeamento no workspace.

Lembre de Encobrir as pastas que você não precisa. Por padrão, a pasta raiz do projeto é mapeada no workspace. Essa configuração resulta no download pelo agente de compilação de todos os arquivos na pasta de controle de versão do seu projeto. Se essa pasta contivesse muitos dados, a compilação poderia desperdiçar recursos do sistema de compilação e atrasar o pipeline de build baixando grandes volumes de dados desnecessários.

Ao remover projetos, procure mapeamentos que podem ser removidos do workspace.

Se esse for uma compilação de CI, na maioria dos casos, você deve verificar se esses mapeamentos correspondem às configurações de filtro do gatilho de CI na guia Gatilhos.

Para obter mais informações sobre como otimizar um workspace do TFVC, confira Otimizar seu workspace.

Limpar o repositório local no agente

Você pode executar diferentes formas de limpeza do diretório de trabalho do agente auto-hospedado antes que um build seja executado.

Em geral, para obter um desempenho mais rápido de seus agentes auto-hospedados, não limpe o repositório. Nesse caso, para obter o melhor desempenho, verifique se você também está compilando incrementalmente, desabilitando qualquer opção Limpar da tarefa ou ferramenta que você está usando para compilar.

Se você precisar limpar o repositório (por exemplo, para evitar problemas causados por arquivos residuais de uma compilação anterior), suas opções para isso são descritas abaixo.

Observação

A limpeza não será relevante se você estiver usando um agente hospedado pela Microsoft porque, nesse caso, sempre receberá um novo agente.

Se você quiser limpar o repositório, selecione true e escolha uma das seguintes opções:

  • Fontes: o pipeline de build executa o desfazer de todas as alterações e faz scorches do workspace atual em $(Build.SourcesDirectory).

  • Diretório de fontes e saída: a mesma operação que a opção Fontesacima e que, além disso, exclui e recria $(Build.BinariesDirectory).

  • Diretório de fontes: exclui e recria $(Build.SourcesDirectory).

  • Todos os diretórios de build: exclui e recria $(Agent.BuildDirectory).

Gatilhos de CI

Selecione Habilitar integração contínua na guia Gatilhospara habilitar esse gatilho se você quiser que o build seja executado sempre que alguém fizer check-in de código.

Gatilhos de CI.

Alterações em lote

Marque essa caixa de seleção se você tiver muitos membros da equipe carregando alterações com frequência e quiser reduzir o número de builds que está executando. Se você selecionar essa opção, quando um pipeline estiver em execução, o sistema aguardará até que a compilação seja concluída e enfileirará outra compilação com todas as alterações que ainda não foram criadas.

Você pode fazer alterações em lote e compilá-las juntas.

Filtros de caminho

Selecione os caminhos de controle de versão que você deseja incluir e excluir. Na maioria dos casos, você deve garantir que esses filtros sejam consistentes com seus mapeamentos de TFVC. Você pode usar filtros de caminho para reduzir o conjunto de arquivos que deseja acionar uma compilação.

Dicas:

  • Os caminhos são sempre especificados em relação à raiz do workspace.
  • Se você não definir filtros de caminho, a pasta raiz do workspace será incluída implicitamente por padrão.
  • Se você excluir um caminho, também não poderá incluí-lo, a menos que o qualifique para uma pasta mais profunda. Por exemplo, se você excluir /tools, poderá incluir /tools/trigger-runs-on-these
  • A ordem dos filtros de caminho não importa.

Check-in restrito

Você pode usar o marcar fechado para proteger contra alterações interruptivas.

Por padrão, a opção Usar mapeamentos de workspace para filtros está selecionada. Os builds são disparados sempre que uma alteração é verificada em um caminho especificado em seus mapeamentos de origem.

Caso contrário, você pode desmarcar essa caixa de seleção e especificar os caminhos no gatilho.

Como isso afeta seus desenvolvedores

Quando os desenvolvedores tentam fazer check-in, eles são solicitados a compilar as alterações.

Check-in restrito do TFVC

Então, o sistema cria um check-in particular e o compila.

Observação

Se você receber um erro como The shelveset _Build_95;Build\6bc8a077-3f27-4936-82e6-415fbd53ba07 could not be found for check-in, verifique a configuração Limitar o escopo da autorização de trabalho ao projeto atual para pipelines de não lançamento e verifique se ela não está habilitada.

Para obter detalhes sobre a experiência de check-in restrito, confira Fazer check-in em uma pasta controlada por um pipeline de build de check-in restrito.

Opção para executar compilações de CI

Por padrão, as compilações de CI não são executadas depois que o processo de check-in restrito é concluído e é realizado o check-in das alterações.

No entanto, se você quiser que as compilações de CI sejam executadas após um check-in restrito, selecione a caixa Executar gatilhos de CI para alterações confirmadas. Quando você faz isso, o pipeline de build não adiciona ***NO_CI*** à descrição do conjunto de alterações. Como resultado, as compilações de CI afetadas pelo check-in são executadas.

Algumas informações adicionais

Perguntas frequentes

Recebo o seguinte erro ao executar um pipeline:

The shelveset <xyz> could not be found for check-in

  • O escopo de autorização do trabalho está definido como coleção? Os repositórios de TFVC geralmente são distribuídos entre os projetos em sua coleção. Você pode estar lendo ou gravando em uma pasta que só pode ser acessada quando o escopo é a coleção inteira. Você pode definir isso nas configurações da organização ou na configuração do projeto na guia Pipelines.

Recebo o seguinte erro ao executar um pipeline:

The underlying connection was closed: An unexpected error occurred on a receive. ##[error]Exit code 100 returned from process: file name 'tf', arguments 'vc workspace /new /location:local /permission:Public

  • Geralmente, esse é um erro intermitente causado quando o serviço está enfrentando problemas técnicos. Execute novamente o pipeline.

O que é scorch?

Scorch é uma poderosa ferramenta de TFVC que garante que o controle do código-fonte no servidor e no disco local sejam idênticos. Confira Microsoft Visual Studio Team Foundation Server 2015 Power Tools.