Partager via


Utiliser un processus de génération d'archivage contrôlé pour la validation des modifications

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 encore plus élevés. Vous avez donc tout intérêt à créer une définition de build d'archivage contrôlé afin de mettre tout ou partie de votre base de code à l'abri de ces problèmes.

Notes

Les builds d'archivage contrôlées sont uniquement disponibles dans les projets d'équipe TFVC Icône TFVC.Elles ne sont pas disponibles dans les projets d'équipe Git Icône Git.

Que voulez-vous faire ?

  • Comprendre l'incidence des builds d'archivage contrôlé sur votre équipe

  • Définir un processus de build d'archivage contrôlé

  • Instructions pour améliorer les fonctions et les performances du processus de build

  • Éviter de bloquer votre équipe

  • Exécuter manuellement des builds d'archivage contrôlé et des builds privées

Incidence des builds d'archivage contrôlé sur votre équipe

Lorsque votre équipe met un processus de build d'archivage contrôlé en place, les modifications que les développeurs envoient sont placées dans des jeux de réservations et sont automatiquement générées et possiblement testées par votre système de génération.

Boîte de dialogue Archivage contrôlé

Le processus d'archivage ne sera effectif que si la build réussit. Pour plus d'informations, consultez Archiver des modifications en attente contrôlées par une build d'archivage contrôlé.

Si certains de vos utilisateurs doivent se soustraire à l'archivage contrôlé, veillez à ce que l'autorisation Remplacer la validation de l'archivage par build ait la valeur Autoriser pour le groupe d'utilisateurs en question. Pour plus d'informations, consultez Référence des autorisations pour Team Foundation Server.

Définir un processus de build d'archivage contrôlé

  1. Dans Team Explorer, vérifiez que vous êtes connecté au projet d'équipe (raccourci clavier : Ctrl + 0, C), puis ouvrez la page Builds (raccourci clavier : Ctrl + 0, B).

  2. Cliquez sur le lien Nouvelle définition de build ou sélectionnez une build, ouvrez le menu contextuel, puis choisissez Modifier la définition de build.

    Conseil

    Si un message d'erreur TF225001 s'affiche, configurez un contrôleur de build.

  3. Sous l'onglet Déclencheur :

    • Choisissez Archivage contrôlé.

    • (Facultatif) Pour augmenter l'efficacité de votre processus de génération, sélectionnez Fusionner et générer jusqu'à n envois Pour plus d'informations, consultez Éviter de bloquer votre équipe.

  4. Sous l'onglet Paramètres de la source, dans la table Dossiers de travail, mappez les dossiers de contrôle de version que cette définition de build contrôlera avec les dossiers locaux de l'agent de build.

    Conseil

    Respectez les règles ci-dessous.

    • Pour vous assurer que votre build traite les fonctions correctement et pour améliorer les performances, incluez tous les dossiers, et seulement ceux-ci, qui contiennent les fichiers que requiert votre processus de génération.

    • Assurez-vous que vous ne spécifiez pas un dossier de contrôle de version déjà spécifié dans l'onglet Espace de travail d'une autre définition de build d'archivage contrôlé.Sinon, quand un utilisateur archive des fichiers dans ces dossiers, le système de build a besoin qu'il décide quelle définition de build doit être mise en file d'attente.

    • Pour plus d'informations sur la façon de spécifier les mappages, consultez Travailler avec des espaces de travail de build.

  5. Pour améliorer les performances, sous l'onglet Valeurs par défaut des builds, choisissez Cette build ne copie pas les fichiers de sortie dans un dossier de dépôt.

  6. Sous l'onglet Processus, sous Générer, dans le paramètre Projets, spécifiez les solutions ou les projets de code à générer.

  7. Sous l'onglet Processus, définissez les paramètres afin que les archivages soient conformes aux normes de qualité de code spécifiques à votre équipe sans retarder inutilement vos développeurs.

    Pour plus d'informations, consultez Améliorer la fonctionnalité et les performances du processus de génération plus loin dans cette rubrique.

  8. Spécifiez les options de processus de génération sur les autres onglets. Pour plus d'informations, consultez Créer ou modifier une définition de build.

Améliorer la fonctionnalité et les performances du processus de génération

Pour réduire la durée nécessaire au traitement de la build, vous devez suivre ces instructions lorsque vous spécifiez des valeurs pour les paramètres de processus de génération sous l'onglet Processus.

Contrôle de version TF ou Git

  • Nettoyer l'espace de travail ou Nettoyer le référentiel : pour accélérer les performances, affectez à ce paramètre la valeur False. Ce paramètre peut empêcher votre équipe de voir certains types d'erreurs, notamment celles introduites pendant la réorganisation.

Build

  • Configurations : si vous laissez ce paramètre vide, la plateforme et la configuration par défaut sont utilisées pour chaque solution et projet. Pour optimiser les performances, respectez les instructions suivantes :

    • Si une paire plateforme/configuration est générée plus rapidement que d'autres paires, spécifiez-la dans ce paramètre.

    • Spécifiez le moins de paires plateforme/configuration possible.

  • Build propre : pour accélérer les performances, définissez ce paramètre sur la valeur False. Ce paramètre peut empêcher votre équipe de voir certains types d'erreurs, notamment celles introduites pendant la réorganisation.

Build, avancé

  • Effectuer l'analyse du code : pour de meilleures performances, choisissez Jamais.

Test, avancé

  • Désactiver les tests :

    • pour accélérer les performances, sélectionnez True.

    • Si votre code doit passer certains tests, sélectionnez False, puis définissez un ensemble de tests à exécuter dans la build. Vous pouvez améliorer les performances en exécutant seulement les tests dont vous avez besoin. Pour définir ces tests, filtrez-les par catégorie ou priorité. Pour plus d'informations, consultez Exécuter des tests dans votre processus de génération.

Publier les symboles

  • Chemin d'accès pour publier les symboles : pour accélérer les performances, laissez cette valeur vide.

Avancé

  • Paramètres d'agent

    • Filtre de nom ou Filtre de balises : utilisez un nom d'agent de build ou une balise pour lier cette définition de build à un agent de build conçu spécialement pour l'exécution de cette build. L'agent de build doit être exécuté sur une machine offrant une capacité de traitement conforme aux attentes de votre équipe en termes de performances.

      Par exemple, vous et les développeurs de votre équipe feront certainement preuve de patience si la durée du processus de génération ne dépasse pas 15 minutes. Mais vous n'êtes pas supposé attendre huit heures avant de pouvoir déterminer si votre code a été contrôlé avec succès.

    • Durée d'exécution maximale : choisissez une durée relativement courte. Il est fort probable qu'un délai de huit heures soit trop long pour votre équipe et qu'un délai de 15 minutes soit acceptable.

Pour plus d'informations sur les paramètres du processus de génération basé sur le modèle par défaut, consultez Utiliser le modèle par défaut pour un processus de build.

Éviter de bloquer votre équipe

Chaque définition de build d'archivage contrôlé peut avoir une seule build en cours d'exécution à la fois. Par conséquent, les équipes actives et de grande envergure sont plus susceptibles de développer une grande file d'attente de builds d'archivage contrôlé. Les meilleures pratiques suivantes peuvent vous aider à éviter tout blocage de la progression de votre équipe :

  • Pour augmenter l'efficacité de votre processus de génération, sous l'onglet Déclencheur, sélectionnez l'option Fusionner et générer jusqu'à n envois et spécifiez le nombre maximal d'enregistrements que vous souhaitez générer ensemble dans un lot donné. En général, vous ne risquez pas beaucoup d'interruption en utilisant cette option. Chaque archivage est validé individuellement ou rejeté.

    Par exemple, si trois enregistrements sont générés ensemble dans un processus et que la build n'aboutit pas, le système met en file d'attente les builds individuelles de chacun des trois enregistrements.

    Toutefois, cette option présente le risque qu'un archivage interfère avec d'autres. Cela peut se produire, par exemple, si plusieurs enregistrements modifient le même fichier et qu'un conflit de contrôle de version se produit. Dans ce cas, l'archivage antérieur est validé et les archivages ultérieurs sont rejetés.

  • Définissez la build de sorte que l'agent de build effectue uniquement le travail qui est nécessaire pour valider la qualité du code archivé. Pour plus d'informations, consultez Instructions pour les paramètres de l'onglet Processus plus haut dans cette rubrique.

  • Consacrez un ordinateur de build équipé d'un matériel puissant (par exemple, un processeur rapide et un disque dur rapide) à l'agent de build utilisé par votre définition de build d'archivage contrôlé.

Exécuter manuellement des builds d'archivage contrôlé et des builds privées

Les développeurs qui souhaitent contrôler plus étroitement les modifications qu'ils archivent peuvent mettre manuellement en file d'attente une build d'un jeu de réservations. Dans ce cas, ils peuvent choisir l'une des deux options suivantes afin de spécifier l'action effectuée par le système si la build réussit :

  • Le système archive les modifications (build d'archivage contrôlé manuelle) : cette option peut être pratique pour les équipes qui ont besoin de l'archivage contrôlé, mais qui souhaitent permettre aux développeurs de valider volontairement leur code avant de l'archiver.

  • Le système n'archive pas les modifications (build privée) : les développeurs peuvent utiliser cette option lorsqu'ils souhaitent valider des modifications dans un jeu de réservations sans toutefois les archiver.

Pour plus d'informations, consultez Mettre une build en file d'attente.