Compartilhar via


Especificar disparadores e as razões de compilação

Você pode manualmente enfileirar uma compilação sempre que necessário, mas as necessidades da equipe serão melhor atendidas, na maioria dos casos, por processos de compilação que são definidos com disparadores automáticos.Quando uma compilação for disparada, uma razão específica é gravada na propriedade Reason.Este tópico descreve e explica como usar todos os disparadores de compilação disponíveis e motivos para compilar quando você desenvolve seu processo de compilação.

  • Usar acionadores de compilação para atingir metas da equipe

    • Proteger sua equipe das interrupções de compilação

    • Manter a qualidade usando a integração contínua

    • Verificar a qualidade do produto executando testes de verificação pós-compilação (BVTs)

  • Usar os disparadores automáticos de compilação

    • Usar o disparador contínuo de integração para enfileirar uma compilação quando uma alteração é detectada.

    • Usar o disparador de compilações de rolamento para enfileirar uma compilação quando uma alteração é feita mas com limites na frequencia em que uma compilação é executada.

    • Usar o disparador de check-in com barreira para enfileirar uma compilação quando um membro da equipe tentar fazer uma alteração, e bloquear a alteração se a compilação falhar

    • Usar o disparador de cronograma para enfileirar uma compilação em um intervalo normal

  • Enfileirar manualmente uma compilação

    • Enfileirar uma compilação

    • Enfileirar uma compilação particular

  • Use o código personalizado para enfileirar uma compilação

  • Trabalhar com disparadores e razões de compilação

Usar acionadores de compilação para atingir metas da equipe

Hh190718.collapse_all(pt-br,VS.110).gifProteger sua equipe das interrupções de compilação

Quando um desenvolvedor fizer o check-in das alterações que quebram a compilação, o resultado pode ser um significativo incômodo para equipes pequenas.O custo para equipes maiores pode ser caro como medido pela produtividade perdida e pelos atrasos de cronograma.Você pode usar o disparador de Check-in com barreira para proteger parte ou todo seu código base desse problema.

Hh190718.collapse_all(pt-br,VS.110).gifManter a qualidade usando a integração contínua

Integração contínua é o processo de integrar seu código em um armazenamento compartilhado tão freqüentemente quanto for possível.Durante a integração de código, uma interrupção da compilação ou uma falha de teste podem informá-lo, em tempo hábil, sobre um erro no seu código.Você pode usar o disparador de Integração Contínua para implementar a integração contínua.O disparador de Compilações de rolamento é semelhante ao disparador de Integração contínua e pode ser útil se você não tiver um sistema suficientemente potente de compilação para executar uma compilação toda vez que um check-in ocorra.

O disparador de Check-in com barreira pode servir como uma abordagem ainda mais rigorosa à integração contínua.O disparador de Integração contínua alerta sua equipe sobre problemas como interrupções da compilação ou testes de unidade principal fracassados, mas o disparador de Check-in com barreira bloqueia esses tipos de problemas por ser introduzido no código base.

Para obter mais informações sobre como usar o sistema de compilação para oferecer suporte a integração contínua, consulte Definir um processo de compilação para oferecer suporte a integração contínua e Crie e implante continuamente.

Hh190718.collapse_all(pt-br,VS.110).gifVerificar a qualidade do produto executando testes de verificação pós-compilação (BVTs)

Você pode agendar ensaios normais para classificar a qualidade da compilação.Esses testes são geralmente chamados de testes de verificação de compilação (BVTs, em inglês) ou teste de fumaça.Esses testes geralmente consistem em um conjunto amplo de teste que são usados para verificar pontos chave de um aplicativo em uma compilação específica.Você pode usar o disparador de Agendamento para implementar uma execução noturna de BVT.

Para obter informações sobre o disparador de Agendamento, consulte Use Agendamento para enfileirar uma compilação em um intervalo normal.Para obter mais informações sobre como configurar um processo de BVT, consulte Como: configurar e executar agendada testes após a criação do aplicativo.

Usar os disparadores automáticos de compilação

Você deve especificar um disparador de compilação para sua definição de compilação.Na maioria dos casos, você desejará que o processo de compilação seja executado automaticamente.Você pode selecionar um dos disparadores automáticos que esta seção descreve.

Hh190718.collapse_all(pt-br,VS.110).gifUsar o disparador contínuo de integração para enfileirar uma compilação quando uma alteração é detectada.

Se você definir uma compilação com o disparador de Integração contínua, a compilação será colocada na fila sempre que um membro da equipe fizer o check-in da alteração.A definição de compilação Espaço de trabalho determina quais arquivos disparam a definição de compilação.Para obter mais informações sobre espaços de trabalho de compilação, consulte Trabalhar com espaços de trabalho de compilação.

A compilações que são ativadas por Integração contínua são atribuídas um Reason de IndividualCI.

Hh190718.collapse_all(pt-br,VS.110).gifUse o disparador de compilações de rolamento para compilar múltiplos check-ins em um intervalo normal

Se você definir uma compilação com o disparador de Compilações de rolamento, o sistema de compilação coloca na fila uma compilação de cada check-in na condição de que a compilação não esteja sendo executada.Se a compilação estiver sendo executanda, o sistema aguarda até que a compilação seja concluída e então coloca na fila outra compilação de todos os check-ins que ainda não foram compilados.Você também pode limitar a frequência de compilações se você selecionou a caixa de seleção Compilar no máximo a cadan minutos e digirar um valor inteiro entre 0 e 2147483647.

Por exemplo, você pode ter apenas um agente de compilação e ele pode concluir sua compilação a cada 20 minutos.Se você usar o disparador de Integração Contínua e sua equipe fizer check-in no código nove vezes entre 10 A.M. (10h00) e 11 A.M. (11h00), o último check-in pode não ser compilado até as 1 P.M. (13h00). No entanto, se você usar o disparador de Compilações de rolamento e especificar 60 minutos como o intervalo, o mesmo conjunto de check-ins pode ser compilado até as 11:20 A.M. (11h20)

A definição de compilação Espaço de trabalho determina quais arquivos disparam a definição de compilação.Para obter mais informações sobre espaços de trabalho de compilação, consulte Trabalhar com espaços de trabalho de compilação.

A compilações que são ativadas por Compilações de rolamento são atribuídas Reason de BatchedCI.

Hh190718.collapse_all(pt-br,VS.110).gifUse o disparador de check-in com barreira para colocar na fila uma compilação quando um membro da equipe tentar fazer o check-in da alteração e bloquear a alteração se a compilação falhar

Se você definir uma compilação com o disparador de Check-in com barreira, as alterações que um membro da equipe envia para o sistema de controle de versão são colocadas em um check-in particular e colocadas na fila para ser compiladas.A compilação deve ter êxito para que o processo de check-in a seja concluído.A definição de compilação Espaço de trabalho determina quais arquivos são controlados pela definição de compilação.Para obter mais informações sobre espaços de trabalho de compilação, consulte Trabalhar com espaços de trabalho de compilação.

A compilações que são ativadas por Check-in com barreira é atribuído Reason de CheckInShelveset.

Para obter mais informações sobre como implementar o disparador de Check-in com barreira, consulte Definir um processo de compilação Gated Check-In para validar as alterações.Para obter mais informações sobre como esse tipo de definição de compilação afeta sua equipe, consulte Check-In alterações pendentes que são controlados por um Check-in Gated construir.

Hh190718.collapse_all(pt-br,VS.110).gifUsar o disparador de cronograma para enfileirar uma compilação em um intervalo normal

Hh190718.collapse_all(pt-br,VS.110).gifDisparador de Agendamento

Se você definir uma compilação com o disparador de Agendamento e desmarcar a caixa de seleção Compilar mesmo se nada foi alterado desde a compilação anterior, uma compilação é colocada na fila está nos dias e horas especificadas se foi feito check-in de alterações desde a execução mais recente desta definição de compilação.A compilação será colocada na fila independentemente se as alterações foram associadas à última boa compilação.

A compilações que são acionadas dessa maneira é atribuído Reason de Schedule.

DicaDica

Se você estiver desenvolvendo um modelo personalizado do processo de compilação e você seleciona Schedule como um valor na propriedade Motivo de uma seção Restrinja seções do processo de compilação baseado na razão (disparador) (atividade InvokeForReason) do modelo, na maioria dos casos você provavelmente deve também selecionar ScheduleForced.

Hh190718.collapse_all(pt-br,VS.110).gifDisparadores de Agendamento (Razão: ScheduleForced)

Se você definir uma compilação com o disparador de Agendamento e selecione a caixa de seleção de Compilar mesmo se nada foi alterado desde a compilação anterior, uma compilação é colocada na fila nos dias e horas especificadas.A compilação será colocada na fila independentemente do check-in das alterações.

A compilações que são acionadas dessa maneira é atribuído Reason de ScheduleForced.

DicaDica

Se você estiver desenvolvendo um modelo personalizado do processo de compilação e você seleciona ScheduleForced como um valor na propriedade Motivo de uma seção Restrinja seções do processo de compilação baseado na razão (disparador) (atividade InvokeForReason) do modelo, na maioria dos casos você provavelmente deve também selecionar Schedule.

Enfileirar manualmente uma compilação

Em determinadas situações, você pode ter um processo de compilação que você não deseja executar automaticamente.

  • Sua definição de compilação pode não estar pronta para execução automática porque ainda está em desenvolvimento.

  • Você pode ter um processo especial de compilação que você deseja executar somente manualmente.

Nessas situações, você pode selecionar o disparador Manual.A definição de compilação será executada somente quando um membro da equipe colocá-la na fila manualmente.

Hh190718.collapse_all(pt-br,VS.110).gifEnfileirar uma compilação

Você pode colocar manualmente qualquer definição de compilação, mesmo se ela é definida com um disparador de compilação diferente do Manual.Quando você coloca na fila manualmente uma compilação, Reason é definido como Manual.Para obter mais informações sobre como colocar manualmente uma compilação, consulte Uma compilação de fila.

Hh190718.collapse_all(pt-br,VS.110).gifEnfileirar uma compilação particular

Se você deseja compilar as alterações que você fez em um check-in particular, você pode usar uma compilação privada (também conhecida como uma "compilação companheira") para validar alterações em seu código antes de você fazer o check-in.Quando você coloca manualmente uma compilação particular, Reason é definido como ValidateShelveset.Para obter mais informações sobre como colocar uma compilação em particular, consulte Uma compilação de fila.

Use um código personalizado para criar uma compilação concluída

Você pode desenvolver código personalizado que cria uma compilação concluída aproveitando classes no namespace Microsoft.TeamFoundation.Build.Quando uma compilação é colocada na fila de essa maneira, Reason é definido como UserCreated.Para obter mais informações, consulte Extending Team Foundation: Build

Trabalhar com disparadores e razões de compilação

Você pode aproveitar disparadores e as razões no seu processo de compilação das seguintes maneiras:

  • Defina o disparador para o processo de compilação: Em sua definição de compilação, clique na guia Disparador e selecione o disparador que o melhor atender às necessidades de sua equipe.Para obter mais informações sobre como criar uma definição de compilação, consulte Criar uma definição de compilação.

  • Defina que razões de compilação são aceitos por um processo de compilação personalizado: Você pode usar 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.Para obter mais informações, consulte Restrinja seções do processo de compilação baseado na razão (disparador) (atividade InvokeForReason).