Spécifier les raisons et les déclencheurs de build
Vous pouvez manuellement mettre en file d'attente une build 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 build 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 build disponibles et les raisons des générations lorsque vous développez votre processus de génération.
Utiliser des déclencheurs de build 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 build
Utiliser le déclencheur d'intégration continue pour mettre en file d'attente une build lorsqu'une modification est archivée
Utiliser le déclencheur Builds enchaînées pour mettre en file d'attente une build 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 build lorsqu'un membre de l'équipe tente d'archiver une modification, et bloquer la modification si la build échoue
Utiliser le déclencheur de planification pour mettre en file d'attente une build à 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 build 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 Configurer une build CI.
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 build. 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 build à intervalle régulier.
Utiliser les déclencheurs automatiques de build
Vous devez spécifier un déclencheur de build 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 build lorsqu'une modification est archivée
Lorsque vous définissez une build avec le déclencheur Intégration continue, la build 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 générer plusieurs archivages à intervalle régulier
Si vous définissez une build avec le déclencheur Builds enchaînées, le système de génération met en file d'attente une build de chaque archivage tant que la build ne s'exécute pas. Si la build s'exécute, le système attend que la build soit terminée, puis met en file d'attente une autre build de tous les enregistrements qui n'ont pas encore été générés. Vous pouvez aussi limiter 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.
Par exemple, vous pouvez avoir un seul agent de build, et il peut effectuer votre build toutes les 20 minutes. Si vous utilisez le déclencheur Intégration continue et que votre équipe archive le code neuf fois entre 10 h et 11 h du matin, le dernier archivage peut ne pas être généré jusqu'à 13 h. Toutefois, si vous utilisez le déclencheur Builds enchaînées et spécifiez 60 minutes comme intervalle, le même ensemble d'enregistrements est généré à 11 h 20 du matin.
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 build lorsqu'un membre de l'équipe tente d'archiver une modification, et bloquer la modification si la build échoue
Vous pouvez utiliser ce déclencheur uniquement dans un projet d'équipe TFVC ; il n'est pas disponible dans un projet d'équipe Git.
Lorsque vous définissez une build 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 build 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 Utiliser un processus de génération 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 build à intervalle régulier
Déclencheur Planifier
Lorsque vous définissez une build 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 build 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 build 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 de la propriété Raison d'une section InvokeForReason de votre modèle, dans la plupart des cas, vous devrez probablement sélectionner aussi ScheduleForced.
Déclencheur Planifier (Raison : ScheduleForced)
Lorsque vous définissez une build 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 build est mise en file d'attente au jour et à l'heure que vous spécifiez. La build 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 de la propriété Raison d'une section InvokeForReason de votre modèle, dans la plupart des cas, vous devrez probablement sélectionner aussi 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 build autre que Manuel. Lorsque vous mettez une build 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 build, 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 build est mise en file d'attente de cette manière, le Reason a la valeur UserCreated. Pour plus d'informations, consultez Extension de Team Foundation : Génération
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 :
Définissez le déclencheur pour votre processus de génération : Dans la définition de build, cliquez sur l'onglet Déclencheur, puis sélectionnez le déclencheur qui répond au mieux aux besoins de votre équipe. Pour plus d'informations sur la création d'une définition de build, consultez Créer ou modifier une définition de build.
Définissez les raisons des builds acceptées par un processus génération personnalisée : Vous pouvez utiliser l'activité InvokeForReason pour définir un segment de votre processus de génération à exécuter uniquement dans les générations qui ont été exécutées pour une raison particulière. Pour plus d'informations, consultez Activités Team Foundation Build : InvokeForReason.