Intégration Continue avec Visual Studio et Team Foundation Server - Partie II, Présentation de MsBuild et de TfsBuild

Date de publication : 29/04/2009 , Date de mise à jour : 29/04/2009

Par Pierre-Emmanuel Dautreppe (Page Perso de Pierre-Emmanuel Dautreppe) (Blog)
 

Nous allons présenter ici l'intégration continue dans le monde Microsoft.NET, c'est à dire avec Visual Studio.NET et le Team Foundation Server.
L'intégration continue s'articule autour de quatre outils:
  • MsTest pour écrire des tests automatisés
  • Static Code Analysis pour valider le code écrit selon un jeu de règles préféfinies.
  • MsBuild pour automatiser un certains nombre de tâches (compilation, déploiement, ...)
  • TFSBuild pour automatiser les tâches liées aux builds automatisés
Nous avions vu fr  dans une première partie à la fois une introduction à l'intégration continue et une description très détaillée des outils MsTest et Static Code Analysis.
Cet article, quant à lui présente en détail les deux derniers outils : MsBuild et TfsBuild et répondra donc aux questions suivantes :
  • Comment automatiser des tâches grâce à MsBuild
  • Comment réaliser un build automatisé (et le paramétrer) grâce à TfsBuild
Page 1
1. Contexte
2. Présentation brève de MsBuild
Page 2
3. Premiers pas avec MsBuild : Ecrire un fichier de build de base
3-1. Structure d'un fichier de build
3-2. Qu'est ce qu'une tâche / Task ?
3-3. Qu'est ce qu'un target ?
3-4. Création d'un fichier de build
3-5. Exécuter un fichier de build
Page 3
4. Aller plus loin avec MsBuild
4-1. S'assurer de la validité du fichier de build
4-2. Propriétés d'un fichier de build : les Properties et PropertyGroup
4-2-1. Définition
4-2-2. Création statique de propriétés
4-2-3. Utilisation de Properties
4-2-4. Précaution d'emploi : Ordre de déclaration
4-2-5. Création dynamique de Properties
4-2-5-1. Définition
4-2-5-2. Différence entre création statique et dynamique
4-2-5-3. Syntaxe de la tâche CreateProperty
4-2-5-4. Exemple d'utilisation
4-2-6. Changer la valeur d'une propriété
4-2-7. Différer la création d'un PropertyGroup
4-3. Listes d'un fichier de build : les Items et ItemGroup
4-3-1. Définition
4-3-2. Création statique d'Items
4-3-3. Utilisation d'Items
4-3-4. Création dynamique d'Items
4-3-4-1. Syntaxe et exemple
4-3-4-2. Cas particulier lors de l'utilisation de metadata
4-3-5. Précautions lors de l'utilisation d'Items dans des tâches
4-3-6. Différer la création d'un ItemGroup
4-4. Exécuter un fichier de build
4-4-1. Exécution par défaut
4-4-2. Surcharge du target à exécuter
4-4-3. Surcharge d'une propriété
4-4-4. Surcharge de la verbosité d'exécution
4-4-5. Omission du nom du fichier
4-5. Référencer une tâche du framework 3.5
4-6. Plus loin avec les Targets
4-6-1. Contrôler l'ordre d'exécution des Targets
4-6-1-1. Définition
4-6-1-2. Exemple
4-6-1-3. Cas des dépendances multiples
4-6-2. Appeler explicitement un Target
4-6-2-1. Appeler un target via CallTarget
4-6-2-2. Appeler un target via MsBuild
4-6-2-3. Choisir CallTarget ou MsBuild
4-6-2-4. La tâche Exec
4-6-3. Passer des paramètres à un Target
4-6-3-1. Paramètres d'entrée
4-6-3-2. Paramètres de sortie
Page 4
5. Factoriser un fichier de build
5-1. Principes de factorisation
5-2. Utilisation de fichier .targets
5-3. Précautions à observer
5-3-1. Positionnement de la commande d'Import
5-3-1-1. Redéfinition d'une propriété
5-3-1-2. Redéfinition d'un target
5-3-2. Importer un fichier du source control
Page 5
6. Créer ses propres tâches
6-1. Créer une tâche simple
6-2. Ajouter des entrées sur sa tâche
6-2-1. Ajouter des entrées optionnelles
6-2-2. Ajouter des entrées obligatoires
6-3. Ajouter des sorties sur sa tâche
6-4. Lever des erreurs
6-5. Debugger sa tâche
Page 6
7. Introduction à Team Foundation Server (TFS)
7-1. Présentation rapide des possibilités du Team Foundation Server
7-2. Présentation des différents serveurs entrant en jeu
7-3. TFS et Gestion des Droits d'Accès
8. TFS et Intégration Continue
8-1. Créer un build
8-2. Editer un build
8-3. Exécuter un build
8-3-1. Via VS
8-3-2. En ligne de commande
8-4. Paramétrer un build
8-4-1. Quelques tâches disponibles
8-4-1-1. Microsoft.Build.Tasks
8-4-1-2. Tâches liées au TFS
8-4-2. Quels sont les targets que l'on peut overrider
Page 7
9. TFS et Gestion
9-1. Quelques commandes utiles
9-1-1. Détruire des fichiers dans le Source Control
9-1-2. Faire un "Undo" sur des fichiers
9-1-3. Lister les fichiers actuellement en Check-Out
9-2. Présentation de TFS Power Tools
9-2-1. Nouvelles « check-in policies »
9-2-2. Menu contextuel sur les membres d'un Team
9-2-3. Gestion simplifiée des alertes
Page 8
10. Tips & Tricks
10-1. Où puis-je trouver des tâches supplémentaires ?
10-2. Comment modifier le processus de « Get » dans le build ?
10-2-1. En modifiant le workspace utilisé par le build
10-2-2. En paramétrant la tâche « Get » qui est faite par le serveur
10-2-3. En réécrivant la tâche « Get »
10-3. Comment peut-on récupérer des sources de plusieurs Team Project ?
10-4. Je crée une propriété utilisant le « BuildNumber », mais celle-ci est vide. Pourquoi ?
Page 9
11. Conclusion
Remerciements
Contact
Page 10
A. Annexes - Bibliographie
A-1. Structure d'un fichier de build
A-2. Table des codes ASCII
A-3. Conditions utilisables dans un fichier de build
A-4. Différents niveaux de verbosité
A-5. Liste des tâches fournies dans Microsoft.Build.Tasks
A-6. Les différentes possibilités de gestion offertes par « tf.exe »


Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2009 Pierre-Emmanuel Dautreppe . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Droits de diffusion permanents accordés à developpez LLC. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Microsoft DotNET - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.