Thursday, August 16, 2007 12:47 AM
batswirl
Builder une solution à partir d'un Label
Un petit truc dont de nombreux clients ayant fait appel à Team Build pour la construction de leur solution s'étonnent, à savoir la possibilité de modifier le comportement par défaut lors de la récupération des sources. En effet, par défaut, Team Build récupère la dernière version des fichiers composants la solution. Or vous voudriez peut être récupéèer la version correspondant à un label flottant (ex : Production).
Si tel est le cas, il vous faudra effectuer deux choses :
- Surcharger la tâche Get de Team Build afin de lui préciser que vous allez vous occuper de la récupération des sources
- Appeler la tâche Get en précisant la version souhaitée
Pour surcharger l'étape de récupération des sources, tout est prévu dans Team Build, il suffit d'ajouter un propriété SkipGet dans votre projet de Build :
...
<PropertyGroup>
<SkipGet>true</SkipGet>
...
Ensuite, il ne vous reste plus qu'à récupèrer le code correspondant à votre projet en spécifiant la verison spécifique, ici, je le fais avant la création du label fixe créé par Team Build :
<Target Name="BeforeLabel" >
<Get Condition="" Workspace="$(WorkspaceName)" Recursive="$(RecursiveGet)" Force="$(ForceGet)" Version="LClean@"/>
</Target>
Toutes les propriétés sont celles par défaut sauf pour l'attribut Version. Clean est le nom de mon label flottant permettant de définir les versions à compiler pour la clean build (build intégrale de la solution et exécution de l'ensembles des tests, configurations, automatisations etc...).
Cette propriété prend donc en paramètre : "L" + "<Nom du label>" + "@" + "<Scope>"
Le "L" définit que nous souhaitons récupérer les sources à partir d'un label dont le nom est indiqué. Vous pouvez également récupére le source à partir d'une date ("D"), d'un change set ("C") etc...
Le scope est optionnel et permet de restreindre la récupération des sources (on aurait pu fournir une url du contrôleur de code source, ex : $/mon projet/Main/DAL).
Label Flottant et Label Fixe :
De nombreux contrôleur de code source fournissent un mécanisme permettant de rassembler un ensemble de fichier d'une version particulière sous un nom commun. Les étiquettes de Visual Source Safe sont reprises dans Team Foundation Version Control. Un Label (étiquette) se construit en sélectionnant les fichiers qui le compose mais vous pourez par la suite modifier ces fichiers.
Ainsi, il apparaît que les équipes de développement ou les administrateurs du contrôleur définissent deux types de label :
Label fixe : Définit un fois pour toute, permet de gérer les différentes versions livrées. L'objectif étant de permettre une récupération rapide de la version d'un environnement, actuellement chez un client ou qui a vu une modificaiton notoire. Exemples de noms de labels fixes ( Livraison Mars 2007, Correctif Client Dupond, Publication Site Avril 2006, Main 2.1.0..., Modification provider). Les labels fixes étant par définition, non modifié, sont les seuls garants de récupérer une version stable après un régression.
Label flottant : Définit au fur et à mesure des itérations et de la progression du projet. Le label flottant est une référence pour l'équipe de développement qui lui permet de récupérer une version des sources en rapport à un contexte. Le nom du label flottant n'a en général aucune information temporelle et son contenu évolue en quasi permanence. Exemples de noms de labels flottants (Production, DAL Oracle, Mobile Web Design, Recette...)