Compartilhar via


Especificar disparadores e razões de compilação

É possível enfileirar manualmente uma compilação sempre que necessário, mas as necessidades da equipe serão, na maioria dos casos, mais bem atendidas por processos de compilação definidos com disparadores automáticos. Quando uma compilação é disparada, um motivo específico é gravado na propriedade Reason. Este tópico descreve e explica como usar todos os disparadores de compilação disponíveis e motivos de compilação quando você desenvolve o processo de compilação.

  • Usar Disparadores de Compilação para Atingir Metas da Equipe

    • Proteger a equipe de interrupções na compilação

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

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

  • Usar Disparadores de Compilação Automáticos

    • Usar o disparador Integração Contínua para enfileirar uma compilação quando é feito o check-in de uma alteração

    • Usar o disparador Sem interrupção de compilações para enfileirar uma compilação quando é feito o check-in de uma alteração, mas com limites na frequência com que uma compilação é executada

    • Usar o disparador Check-in Restringido para enfileirar uma compilação quando um membro da equipe tenta fazer check-in de uma alteração, além de bloquear a alteração se houver falha na compilação

    • Usar o disparador Agenda para enfileirar uma compilação em um intervalo regular

  • Enfileirar Manualmente uma Compilação

    • Enfileirar uma compilação

    • Enfileirar uma compilação particular

  • Usar Código Personalizado para Enfileirar uma Compilação

  • Trabalhar com Disparadores e Motivos da Compilação

Usar Disparadores de Compilação para Atingir Metas da Equipe

Proteger a equipe de interrupções na compilação

Quando um desenvolvedor faz check-in das alterações que interrompem a compilação, o resultado pode ser um problema significativo para equipes pequenas. O custo para equipes maiores pode ser caro conforme medido pela produtividade perdida e pelos atrasos na agenda. É possível usar o disparador Check-in Restringido para proteger parte ou toda a base de código desse problema.

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

Integração contínua é o processo de integração do código em um repositório compartilhado com a maior frequência possível. Durante a integração do código, uma interrupção da compilação ou uma falha no teste pode informá-lo, em tempo hábil, de um erro no código. É possível usar o disparador Integração Contínua para implementar a integração contínua. O disparador Sem interrupção de compilações é semelhante ao disparador Integração Contínua e poderá ser útil se você não tiver um sistema de compilação suficientemente eficiente para executar uma compilação sempre que ocorrer um check-in.

O disparador Check-in Restringido pode funcionar como uma abordagem ainda mais rigorosa à integração contínua. O disparador Integração Contínua alerta a equipe de problemas como, por exemplo, interrupções da compilação ou testes de unidade principal com falha, mas o disparador Check-in Restringido evita que esses tipos de problemas sejam introduzidos na base de código.

Para obter mais informações sobre como usar o sistema de compilação para dar suporte à integração contínua, consulte Configurar uma compilação CI.

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

É possível programar execuções de teste regulares para avaliar a qualidade da compilação. Esses testes costumam ser chamados de BVTs ou smoke tests. Esses testes normalmente consistem em um conjunto amplo de testes usados para verificar áreas-chave de um aplicativo em uma determinada compilação. É possível usar o disparador Agenda para implementar um BVT noturno.

Para obter informações sobre o disparador Agenda, consulte Usar Agenda para enfileirar uma compilação em um intervalo regular.

Usar Disparadores de Compilação Automáticos

Você deve especificar um disparador de compilação para a definição da compilação. Na maioria dos casos, você desejará que o processo de compilação seja executado automaticamente. É possível selecionar um dos disparadores automáticos descritos por esta seção.

Usar o disparador Integração Contínua para enfileirar uma compilação quando é feito o check-in de uma alteração

Se você definir uma compilação com o disparador Integração Contínua, a compilação será enfileirada sempre que um membro da equipe fizer check-in de uma 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.

As compilações disparadas pela Integração Contínua recebem um Reason de IndividualCI.

Use o disparador Sem interrupção de compilações para compilar vários check-ins juntos em um intervalo regular

Se você definir uma compilação com o disparador Sem interrupção de compilações, o sistema de compilação enfileirará uma compilação de cada check-in desde que a compilação não esteja sendo executada. Se a compilação estiver em execução, o sistema aguardará a conclusão da compilação e, em seguida, enfileirará outra compilação de todos os check-ins que ainda não foram compilados. Também será possível limitar a frequência de compilações se você tiver marcado a caixa de seleção Compilar no máximo a cada n minutos e digitar um valor inteiro entre 0 e 2147483647.

Por exemplo, você talvez tenha apenas um agente de compilação, e ele pode concluir sua compilação a cada 20 minutos. Se você usar o disparador Integração Contínua e a equipe fizer check-in do código nove vezes entre 10 e 11 horas da manhã, o último check-in poderá não ser compilado até as 13 horas. No entanto, se você usar o disparador Sem interrupção de compilações e especificar 60 minutos como o intervalo, o mesmo conjunto de check-ins poderá ser compilado às 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.

As compilações disparadas por Sem interrupção de compilações recebem um Reason de BatchedCI.

Use o disparador Check-in Restringido para enfileirar uma compilação quando um membro da equipe tentar fazer check-in de uma alteração e bloquear a alteração, se a compilação falhar

Só é possível usar esse disparador em um Ícone TFVC projeto de equipe TFVC; ele não está disponível em um Ícone de Git projeto de equipe Git.

Se você definir uma compilação com o disparador Check-in Restringido, as alterações enviadas por um membro da equipe para o sistema de controle de versão serão colocadas em um check-in particular e enfileiradas para serem compiladas. A compilação deve ser bem-sucedida para que o processo de check-in 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 disparadas por Check-in Restringido recebem um Reason de CheckInShelveset.

Para obter mais informações sobre como implementar o disparador Check-in Restringido, consulte Usar um processo de compilação de check-in restrito para validar alterações. Para obter mais informações sobre como esse tipo de definição da compilação afeta a equipe, consulte Check-In alterações pendentes que são controlados por um Check-in Gated construir.

Usar o disparador Agenda para enfileirar uma compilação em um intervalo regular

Disparador Agenda

Se você definir uma compilação com o disparador Agenda e desmarcar a caixa de seleção Compilar mesmo que nada tenha sido alterado desde a compilação anterior, uma compilação será enfileirada nos dias e nas horas especificadas se o check-in das alterações tiver sido feito desde a execução mais recente dessa definição de compilação. A compilação será enfileirada independentemente das alterações terem sido associadas à última compilação correta.

As compilações disparadas dessa maneira recebem um Reason de Schedule.

Dica

Se estiver desenvolvendo um modelo de processo de compilação personalizado e selecionar Schedule como um valor na propriedade Motivo de uma seção InvokeForReason do modelo, na maioria dos casos você provavelmente também deverá selecionar ScheduleForced.

Disparador Agenda (motivo: ScheduleForced)

Se você definir uma compilação com o disparador Agenda e marcar a caixa de seleção Compilar mesmo que nada tenha sido alterado desde a compilação anterior, uma compilação será enfileirada nos dias e nas horas especificados. A compilação é enfileirada independentemente do check-in das alterações.

As compilações disparadas dessa maneira recebem um Reason de ScheduleForced.

Dica

Se estiver desenvolvendo um modelo de processo de compilação personalizado e selecionar ScheduleForced como um valor na propriedade Motivo de uma seção InvokeForReason do modelo, na maioria dos casos você provavelmente também deverá selecionar Schedule.

Enfileirar Manualmente uma Compilação

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

  • A definição de compilação talvez não esteja pronta para execuções automáticas porque ainda está em desenvolvimento.

  • Você talvez tenha um processo de compilação especial que deseja executar apenas manualmente.

Nessas situações, é possível selecionar o disparador Manual. A definição de compilação só será executada quando um membro da equipe a enfileirar manualmente.

Enfileirar uma compilação

É possível enfileirar manualmente qualquer definição de compilação, mesmo que ela seja definida com um disparador de compilação diferente de Manual. Quando você enfileira manualmente uma compilação, o Reason é definido como Manual. Para obter mais informações sobre como enfileirar manualmente uma compilação, consulte Enfileirar uma compilação.

Enfileirar uma compilação particular

Se quiser compilar alterações colocadas em um check-in particular, você poderá usar uma compilação privada (também conhecida como uma "compilação amiga") para validar alterações feitas no código antes de fazer o check-in. Quando você enfileira manualmente uma compilação particular, o Reason é definido como ValidateShelveset. Para obter mais informações sobre como enfileirar uma compilação particular, consulte Enfileirar uma compilação.

Usar Código Personalizado para Criar uma Compilação Concluída

É possível desenvolver um código personalizado que cria uma compilação concluída aproveitando classes no namespace Microsoft.TeamFoundation.Build. Quando uma compilação é enfileirada dessa maneira, Reason é definido como UserCreated. Para obter mais informações, consulte Estendendo o Team Foundation: compilação

Trabalhar com Disparadores e Motivos da Compilação

É possível aproveitar disparadores e motivos no processo de compilação das seguintes maneiras:

  • Defina o disparador para o processo de compilação: na definição de compilação, clique na guia Disparador e, em seguida, selecione o disparador que mais bem atenda às necessidades da equipe. Para obter mais informações sobre como criar uma definição de compilação, consulte Criar ou editar uma definição de compilação.

  • Defina quais motivos de compilação são aceitos por um processo de compilação personalizado: é possível usar a atividade InvokeForReason para incluir um segmento do processo de compilação que deseja executar somente em compilações que foram executadas com um motivo específico. Para obter mais informações, consulte Atividades do Team Foundation Build: InvokeForReason.