[TFS 2010] Développer sa propre activité de processus de build
Depuis la version 2010, le processus de build de Team Foundation Server a évolué pour utiliser maintenant WF 4 au lieu de ce bon vieux MSBuild.
Ainsi, si l’on souhaite modifier le processus de build, il “suffit” de développer une activité WF 4 et de l’utiliser dans le workflow de build. Pour créer son activité, rien de plus simple: on créé un nouveau projet de type “WF Activity Library” et on rajoute une “Code Activity”:
1: public sealed class HelloWorldActivity : CodeActivity
2: {
3: [Browsable(true)]
4: [DefaultValue(null)]
5: public InArgument<IBuildDetail> CurrentBuild { get; set; }
6:
7: public OutArgument<string> Result { get; set; }
8:
9: protected override void Execute(CodeActivityContext context)
10: {
11: string requestedBy = this.CurrentBuild.Get(context).RequestedBy;
12:
13: context.SetValue(this.Result, "Hello Build Requested By: " + requestedBy);
14: }
15: }
Comme vous pouvez le voir, mon activité est relativement simple: elle prend en paramètres un objet de type IBuildDetail et elle possède un paramètre de retour, de type chaine de caractères.
Dans la méthode Execute, on récupère les informations sur la build en cours et on affecte, au paramètre Result, le nom de la personne qui a demandé la build. Ca y est, notre activité est prête, nous pouvons à présent l’utiliser dans le workflow 
On commence par l’ajouter à la boite à outils:
Attention, pour pouvoir l’ajouter à votre Toolbox, il faut l’ajouter, dans la fenêtre “Choose Toolbox Items” aux activités proposées dans l’onglet “System.Activities Components”:
Puis on la fait glisser/déposer dans le designer du workflow de build:
Comme notre activité manipule un paramètre en entrée, il est nécessaire de lui donner une valeur. Ainsi, dans les propriétés de l’activité, on peut renseigner la valeur “BuildDetail” pour la propriété “CurrentBuild”:
C’est terminé
On sauvegarde et on lance une build: dans le log, on pourra constater que notre activité a correctement été appelée 
Et voila, c’est simple, rapide et très efficace ! Bien sur, l’exemple pris ici est relativement simple mais rien ne vous empêche de faire plus complexe avec, par exemple, des activités asynchrones (AsyncCodeActivity), des activités renvoyant des valeurs (CodeActivity<TResult>), etc..
Note: Ce n’est pas parce que TFS 2010 utilise WF 4 pour le processus de build que vous allez devoir réécrire tous vos scripts MSBuild. En effet, Microsoft a prévu une activité nommée MSBuild qui, comme son nom l’indique, permet d’exécuter une tâche MSBuild au sein d’un workflow de build 

Bon build à tous 
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :