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: Nettoyage des versions de List Item avant migration depuis SharePoint On Premise vers SharePoint Online par Blog Technique de Romelard Fabrice le 08-08-2017, 15:36

- Office 365: Comment supprimer des éléments de liste SharePoint Online via PowerShell par Blog Technique de Romelard Fabrice le 07-26-2017, 17:09

- Nouveau blog http://bugshunter.net par Blog de Jérémy Jeanson le 07-01-2017, 16:56

- Office 365: Script PowerShell pour assigner des droits Full Control à un groupe défini par Blog Technique de Romelard Fabrice le 04-30-2017, 09:22

- SharePoint 20XX: Script PowerShell pour exporter en CSV toutes les listes d’une ferme pour auditer le contenu avant migration par Blog Technique de Romelard Fabrice le 03-28-2017, 17:53

- Les pièges de l’installation de Visual Studio 2017 par Blog de Jérémy Jeanson le 03-24-2017, 13:05

- UWP or not UWP sur Visual Studio 2015 ? par Blog de Jérémy Jeanson le 03-08-2017, 19:12

- Désinstallation de .net Core RC1 Update 1 ou SDK de Core 1 Preview 2 par Blog de Jérémy Jeanson le 03-07-2017, 19:29

- Office 365: Ajouter un utilisateur ou groupe dans la liste des Site collection Administrator d’un site SharePoint Online via PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-24-2017, 18:52

- Office 365: Comment créer une document library qui utilise les ContentTypeHub avec PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-22-2017, 17:06