Share via


Spécifier les raisons et les déclencheurs de build

Vous pouvez manuellement mettre en file d'attente une génération si nécessaire, mais le plus souvent, la solution qui répond le mieux aux besoins de votre équipe sont les processus de génération définis avec des déclencheurs automatiques. Lorsqu'une génération est déclenchée, une raison spécifique est enregistrée dans la propriété Reason. Cette rubrique décrit et explique comment utiliser tous les déclencheurs de génération disponibles et les raisons des générations lorsque vous développez votre processus de génération.

  • Utiliser des déclencheurs de génération d'utilisation pour atteindre les objectifs de l'équipe

    • Protéger votre équipe contre les arrêts de build

    • Maintenir la qualité à l'aide de l'intégration continue

    • Contrôler la qualité des produits de contrôle en exécutant des tests de vérification de build (BVT) nocturnes

  • Utiliser les déclencheurs automatiques de génération

    • Utiliser le déclencheur d'intégration continue pour mettre en file d'attente une génération lorsqu'une modification est archivée

    • Utiliser le déclencheur Builds enchaînées pour mettre en file d'attente une génération lorsqu'une modification est archivée, mais avec les limites sur la fréquence d'exécution des builds

    • Utiliser le déclencheur d'archivage contrôlé pour mettre en file d'attente une génération lorsqu'un membre de l'équipe tente d'archiver une modification, et bloquer la modification si la génération échoue

    • Utiliser le déclencheur de planification pour mettre en file d'attente une génération à intervalle régulier

  • Mettre une build en file d'attente manuellement

    • Mettre une build en file d'attente

    • Mettre en file d'attente une build privée

  • Utiliser le code personnalisé pour mettre une build en file d'attente

  • Utiliser les déclencheurs de build et les raisons

Utiliser des déclencheurs de génération d'utilisation pour atteindre les objectifs de l'équipe

Protéger votre équipe contre les arrêts de build

Lorsqu'un développeur archive des modifications qui arrêtent la build, cela peut avoir des conséquences néfastes sur le travail des petites équipes. Pour les équipes de plus grande taille, les coûts en matière de perte de productivité et de retard dans le planning peuvent être élevés. Vous pouvez utiliser le déclencheur Archivage contrôlé pour conserver tout ou partie de votre base de code en fonction de ce problème.

Maintenir la qualité à l'aide de l'intégration continue

L'intégration continue consiste à intégrer aussi fréquemment que possible votre code dans un référentiel partagé. Pendant l'intégration du code, un arrêt de build ou un échec de test peut vous indiquer, en temps opportun, une erreur dans votre code. Vous pouvez utiliser le déclencheur Intégration continue pour implémenter une intégration continue. Le déclencheur Builds enchaînées est semblable au déclencheur Intégration continue et peut être utile si votre système de génération n'est pas suffisamment puissant pour exécuter une build chaque fois qu'un archivage se produit.

Le déclencheur Archivage contrôlé peut servir de méthode autrement plus rigoureuse pour l'intégration continue. Le déclencheur Intégration continue alerte votre équipe sur les problèmes tels que les arrêts de build ou les échecs des principaux tests unitaires, mais le déclencheur Archivage contrôlé empêche ces types de problèmes de s'introduire dans votre base de code.

Pour plus d'informations sur l'utilisation de votre système de génération pour prendre en charge l'intégration continue, consultez Générer et déployer en continu.

Contrôler la qualité des produits de contrôle en exécutant des tests de vérification de build (BVT) nocturnes

Vous pouvez planifier des séries de tests normales pour évaluer la qualité de votre génération. Ces tests sont souvent appelés tests de vérification de build (BVT) ou tests de détection de fumée. Ces tests se composent en général d'une suite de tests utilisés pour vérifier les zones clés d'une application d'une build particulière. Vous pouvez utiliser le déclencheur Planifier pour implémenter un test de vérification de build nocturne.

Pour plus d'informations sur le déclencheur Planifier, reportez-vous à la section Utiliser le déclencheur de planification pour mettre en file d'attente une génération à intervalle régulier. Pour plus d'informations sur le mode de configuration d'un processus de test de vérification de build, reportez-vous à la rubrique Comment : configurer et exécuter des tests planifiés après la génération de votre application.

Utiliser les déclencheurs automatiques de génération

Vous devez spécifier un déclencheur de génération pour votre définition de build. Dans la plupart des cas, il est souhaitable que votre processus de génération soit exécuté automatiquement. Vous pouvez choisir l'un des déclencheurs automatiques décrits dans cette section.

Utiliser le déclencheur d'intégration continue pour mettre en file d'attente une génération lorsqu'une modification est archivée

Lorsque vous définissez une génération avec le déclencheur Intégration continue, la génération est mise en file d'attente chaque fois qu'un membre de l'équipe archive une modification. L'Espace de travail de la définition de build détermine les fichiers qui déclenchent la définition de build. Pour plus d'informations sur les espaces de travail de build, consultez Travailler avec des espaces de travail de build.

Les builds qui sont déclenchées par le mode Intégration continue sont affectées à un Reason de IndividualCI.

Utiliser le déclencheur Builds enchaînées pour mettre en file d'attente une génération lorsqu'une modification est archivée, mais avec les limites sur la fréquence d'exécution des builds

Lorsque vous définissez une génération avec le déclencheur Builds enchaînées, la génération est mise en file d'attente lorsqu'une modification est archivée, mais dans les limites suivantes :

  • Aucune génération supplémentaire n'est mise en file d'attente si une génération de cette définition de build est en cours d'exécution.

  • Vous pouvez restreindre davantage la fréquence des générations si vous cochez la case Générer au moins toutes les n minutes, et que vous tapez une valeur entière comprise entre 0 et 2147483647.

L'Espace de travail de la définition de build détermine les fichiers qui déclenchent la définition de build. Pour plus d'informations sur les espaces de travail de build, consultez Travailler avec des espaces de travail de build.

Les builds qui sont déclenchées par le déclencheur Builds enchaînées sont affectées à un Reason de BatchedCI.

Utiliser le déclencheur d'archivage contrôlé pour mettre en file d'attente une génération lorsqu'un membre de l'équipe tente d'archiver une modification, et bloquer la modification si la génération échoue

Lorsque vous définissez une génération avec le déclencheur Archivage contrôlé, les modifications qu'un membre de l'équipe soumet au système de contrôle de version sont placées dans un jeu de réservations et mises en file d'attente pour être générées. Le processus d'archivage ne sera effectif que si la génération réussit. L'Espace de travail de la définition de build détermine les fichiers qui sont contrôlés par la définition de build. Pour plus d'informations sur les espaces de travail de build, consultez Travailler avec des espaces de travail de build.

Les builds qui sont déclenchées par le déclencheur Archivage contrôlé sont affectées un Reason de CheckInShelveset.

Pour plus d'informations sur le mode d'implémentation du déclencheur Archivage contrôlé, consultez Définir une build d'archivage contrôlé pour la validation des modifications. Pour plus d'informations sur l'impact de la définition de build sur votre équipe, consultez Archiver des modifications en attente contrôlées par une build d'archivage contrôlé.

Utiliser le déclencheur de planification pour mettre en file d'attente une génération à intervalle régulier

Déclencheur Planifier

Lorsque vous définissez une génération avec le déclencheur Planifier et que vous désactivez la case à cocher Générer même si rien n'a été modifié depuis la dernière build, une génération est mise en file d'attente au jour et à l'heure spécifiés si des modifications ont été archivées depuis la dernière exécution de cette définition de build. La génération est mise en file d'attente, que les modifications soient associées ou non à la dernière génération correcte.

Un Reason de Schedule est affecté aux builds qui sont déclenchées de cette manière.

Conseil

Si vous développez un modèle de processus de génération personnalisé et que vous sélectionnez Schedule comme valeur dans la propriété Raison d'une section Limitez les sections de votre processus de génération en fonction de la raison (déclencheur) (activité InvokeForReason) de votre modèle, dans la plupart des cas vous devrez sélectionner également ScheduleForced.

Déclencheur Planifier (Raison : ScheduleForced)

Lorsque vous définissez une génération avec le déclencheur Planifier et que vous cochez la case Générer même si rien n'a été modifié depuis la dernière build, une génération est mise en file d'attente au jour et à l'heure que vous spécifiez. La génération est mise en file d'attente indépendamment de l'archivage des modifications.

Un Reason de ScheduleForced est affecté aux builds qui sont déclenchées de cette manière.

Conseil

Si vous développez un modèle de processus de génération personnalisé et que vous sélectionnez ScheduleForced comme valeur dans la propriété Raison d'une section Limitez les sections de votre processus de génération en fonction de la raison (déclencheur) (activité InvokeForReason) de votre modèle, dans la plupart des cas vous devrez sélectionner également Schedule.

Mettre une build en file d'attente manuellement

Dans certains cas, vous pouvez avoir un processus de génération que vous ne souhaitez pas exécuter automatiquement.

  • Votre définition de build n'est peut-être pas prête pour des opérations automatiques, car elle est toujours en cours de développement.

  • Vous pouvez avoir un processus de génération spécial que vous souhaitez exécuter manuellement seulement.

Dans ces situations, vous pouvez choisir le déclencheur Manuel. La définition de build est exécutée uniquement lorsqu'un membre de l'équipe la met en file d'attente manuellement.

Mettre une build en file d'attente

Vous pouvez manuellement mettre en file d'attente toute définition de build, même si elle est définie avec un déclencheur de génération autre que Manuel. Lorsque vous mettez une génération en file d'attente manuellement, le Reason a la valeur Manual. Pour plus d'informations sur la mise en file d'attente manuelle d'une génération, consultez Mettre une build en file d'attente.

Mettre en file d'attente une build privée

Si vous souhaitez générer les modifications que vous avez placées dans un jeu de réservations, vous pouvez utiliser une build privée (également appelée « génération associée ») pour valider les modifications apportées à votre code avant de l'archiver. Lorsque vous mettez en file d'attente manuellement une build privée, le Reason a la valeur ValidateShelveset. Pour plus d'informations sur la mise en file d'attente d'une build privée, consultez Mettre une build en file d'attente.

Utiliser un code personnalisé pour créer une build terminée

Vous pouvez développer le code personnalisé qui crée une build terminée en exploitant des classes dans l'espace de noms Microsoft.TeamFoundation.Build. Lorsqu'une génération est mise en file d'attente de cette manière, le Reason a la valeur UserCreated. Pour plus d'informations, consultez Extending Team Foundation: Build.

Utiliser les déclencheurs de build et les raisons

Vous pouvez exploiter les déclencheurs et les raisons de votre processus de génération de différentes façons :

Historique des modifications

Date

Historique

Motif

Mai 2011

Ajout d'une rubrique.

Améliorations apportées aux informations.