Lorsque l’on utilise les builds TFS sur un projet, il peut être intéressant de spécifier sur quel agent doit être exécutée une build spécifique.

TFS nous propose plusieurs solutions pour répondre à ce besoin.

Spécifier explicitement l’agent de build pour une définition de build

Quand on crée une définition de build, on peut spécifier quel agent doit exécuter la build. Sur l’écran de définition d’une build, cela se passe dans la zone Agent Settings de la section Advanced. Le champ Name Filter permet de renseigner le nom de l’agent qui devra exécuter la build, via une liste déroulante (par défaut la valeur * indiquant n’importe quel agent disponible).

Agent settings d'une définition de build

De cette manière, la build sera systématiquement exécutée sur l’agent renseigné.

Utiliser les Tags pour déterminer quel agent utiliser

La deuxième solution consiste à utiliser les Tags. On peut tagguer les agents et les définitions de builds avec des mots clefs, ces tags permettant au controller TFS de choisir quel est l’agent qui doit exécuter une build.

Pour tagguer un agent, il faut aller dans la vue Team Explorer et cliquer sur Manage Build Controllers….

Manage Build Controllers...

Sélectionnez un agent de build puis cliquez sur Properties. A partir de là, la zone Tags vous permettra d’ajouter des mots clefs.

Tags d'un agent

Pour définir les tags requis pour exécuter une build, sur l’écran de définition d’une build il faut aller dans la zone Agent Settings de la section Advanced. Le champ Tags Filter permet de définir le ou les tags de la build. Le champ Tag Comparison Operator permet de définir le type de comparaison entre les tags de la build et ceux de l’agent (MatchExactly ou MatchAtLeast).

Tags d'une définition de build

De cette manière, à l’exécution de la build, le controller va sélectionner l’agent qui devra exécuter cette build en fonction des tags renseignés et du type de comparaison.

Bonnes builds !

Si cet article t'a plu, n'hésites pas à partager , et si tu as des questions / remarques, n'hésites pas à me contacter