Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[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 Smile

On commence par l’ajouter à la boite à outils:

image

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”:

image

Puis on la fait glisser/déposer dans le designer du workflow de build:

image

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”:

image

C’est terminé Smile On sauvegarde et on lance une build: dans le log, on pourra constater que notre activité a correctement été appelée Wink

image

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 Wink

image

 

Bon build à tous Smile

 

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 :
Posted: jeudi 19 novembre 2009 10:49 par Thomas LEBRUN
Classé sous : , ,

Commentaires

davidrei a dit :

Très bon post, très belle initiative :)

J'ai justement commencé à regarder le nouveau moteur de build basé sur WF pour définir un template d'intégration continu pour SharePoint avec des custom activities. A terme on pourrait avoir un template avec ses activities (custom?) pour chaque type de build on inté continu.

Bref excellent :)

# novembre 19, 2009 11:50

azra a dit :

Impossible de drag n drop ma fucking custom activity depuis la toolbox vers la zone de conception, une idée pourquoi? (les activitées de base, je peux le faire).

# février 24, 2010 10:07

Thomas LEBRUN a dit :

Wé, j'ai eu le cas quand je faisais mes tests. D'après mes sourvenirs, c'est parce que la version qui est dans la toolbox n'est pas la même que celle de la gac.

Pour régler le pb, essayer de supprimer ton activité de la toolbox, réenregistre la DLL dans la GAC et réajoute l'activité dans la toolbox.

# février 24, 2010 10:25
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01