2011-06-06 5 views
5

J'ai configuré plusieurs définitions de build en utilisant TB 2010 pour plusieurs fonctionnalités de notre produit. Je me demande comment puis-je créer un "master build" en utilisant les définitions existantes. Je vais être plus précis: Dans MSBuild, je pourrais utiliser target pour invoquer un autre projet MSBuild. De cette façon, je pourrais chaîner des définitions de construction pour obtenir le script de construction maître final. Comment puis-je le faire dans TB 2010. Note: Je voudrais utiliser WF4 ... pas MSBuild!Master Build avec Team Build 2010

Merci

Répondre

4

Vous ne pouvez certainement écrire une activité de workflow personnalisé pour la file d'attente d'une construction pour une définition de construction. Cette activité doit être une activité de code et accepte le nom de la définition de génération que vous souhaitez mettre en file d'attente.

Pour écrire le code qui interagit avec votre serveur TFS pour mettre en file d'attente une génération, vous pouvez utiliser les API de l'assembly Microsoft.TeamFoundation.Build.Client. En outre, Jim Lamb a blogué sur la création d'activités personnalisées pour la construction here.

En détails, votre code doit faire les étapes suivantes:

  1. crée l'objet TfsTeamProjectCollection pour vous connecter à votre collection de projets d'équipe.
  2. Récupère l'objet IBuildServer. C'est l'entrée principale. De là, vous pouvez obtenir la définition de construction, créer une requête de construction, mettre en queue une construction, etc.

Je suis vraiment surpris qu'il n'y ait pas d'exemple pour la version 2010 quand j'ai essayé de chercher "tfs par programmation créer une build ". Je vais probablement bloguer à ce sujet. Une chose à faire à ce sujet, cependant, que la construction mise en file d'attente de votre activité personnalisée sera mise en file d'attente par le compte de service de construction, vous devez donc vous assurer que ce compte a la bonne construction de file d'attente. Par défaut, lorsqu'il est ajouté au groupe TFS Build Services Accounts, je ne pense pas qu'il l'ait été.

MISE À JOUR:

Ewald Hofman vient d'écrire une série sur TFS Build, dont parle de faire l'usurpation d'identité d'une activité personnalisée. Il est parfait pour vos besoins:

http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx

J'ai aussi trouvé que Taylor Lafrine blogué sur la création d'un programme de construction dans son poste en 2009:

http://blogs.msdn.com/b/taylaf/archive/2009/12/04/introducing-tfs-impersonation.aspx

it helps.

+1

Merci beaucoup! Je vais essayer ceci – monkzen

+0

@Duat Le savez-vous ce que je peux faire quand je fais la queue beaucoup construit l'un après l'autre et chacun dépend d'un autre? Mon problème est que, la construction est mise en file d'attente de manière asynchrone, mais je veux attendre une construction. Des idées? – Rookian

+0

Vous pouvez certainement bloquer votre thread qui met en attente la construction et attendre jusqu'à ce que la construction est terminée. Ce dont vous avez besoin est d'obtenir l'objet IQueuedBuild et attendez que la propriété Status soit Completed ou Canceled. Notez que la demande de construction peut être reportée, alors gardez un œil sur cela, vous pouvez choisir d'attendre ou d'annuler si la demande de construction est reportée. –

Questions connexes