Introduction
Au coeur du concept d'industrialisation, on retrouve bien évidemment l'intégration continue avec notamment le couplage du déploiement. Après la qualité, Microsoft au travers du concept "No waste" s'attaque sur l'ensemble de la plate forme ALM TFS 2010 au chantier de l'automatisation pour éliminer tout temps gaspillé par les équipes dans des taches fastidieuses, répétitives à faible valeur ajoutée. Un des piliers de ce concept est la nouvelle version de Team Build 2010 entièrement refondu au dessus de la technologie WF 4.0 lui conférant plus de capacités et de flexibilité.
Dans cet article nous allons démontrer l'utilisation de Team Build pour automatiser le déploiement d'un projet de base de données dans un contexte d'intégration continue. Nous utiliserons la base exemple Adventure Works pour la mise en oeuvre de ce Build Template personnalisé
Etape 1 : Création du Projet de Base de données
Démarrer Visual Studio 2010 et créer un nouveau projet de Type "SQL Server 2008 Wizard", nommer le projet ADVDatabase par exemple, choisir l'emplacement de stockage du projet :
Choisir l'option User Defined Database et la représentation de votre choix, ici nous prenons par type d'objet sans le nom du schéma pour éviter la limitation des 256 caractères qui peut être très vite dépassée avec des projets de bases de données. Cliquer sur Next
Modifier les Options de la base de données en fonction du contexte, ici nous garderons les options par défaut, cliquer sur Next
Cocher l'option Import Existing Schema et se connecter à la base de données AdventureWorks (ou autre) à partir de laquelle le projet sera crée au travers du scriptage de l'ensemble des objets du schéma de la base de données, nous décocherons l'ensemble des options d'import, cliquer sur Next.
Pour la configuration du build et du déploiement, choisir l'option créer le script de déploiement et déployer la base de données, spécifier ensuite le serveur SQL cible pour le déploiement et indiquer le nom de la base de données. A noter que ces options peuvent être modifées à posteriori via la fenêtre de propriétés du projet de base de données.
Cliquer sur Finish, le processus d'acquisition du schéma de la base de données est lancé. Cliquer à nouveau sur Finish lorsque le scriptage des objets est terminé.
Le projet de base de données apparait alors dans la fenêtre Solution Explorer, il peut être inspecté également en utilisant la vue "Schema View" analogue à celle de SSMS.
On compile alors pour s'assurer que le projet ne comporte pas d'erreurs.
On teste ensuite un déploiement en utilisant la commande Deploy du menu contextuel
Si aucune erreur n'est survenue, on peut par exemple avec SSMS vérifier que la base de données a bien été déployée sur le serveur SQL cible.
Le projet est prêt pour être configuré en intégration continue, nous allons donc l'ajouter au Source Control en utilisant la commande contextuelle (à partir du noeud de la solution contenant le projet) Add solution to Source Control.
Puis nous archivons la solution via la commande Check in Pending Changes.
Etape 2 : Création du Build personnalisé pour le déploiement automatisé du projet de base de données
Se positionner directement sur l'onglet Process
Cliquer sur le bouton Show Details puis cliquer sur le bouton New pour créer un nouveau Template de Build basé sur le template standard
Renommer le fichier template en DatabaseCI_Template.xaml par exemple puis valider
Cliquer sur l'hyperlien permettant d'accèder au Source Control dans le dossier des Build Templates puis lancer la commande Get Latest Version pour récupérer ce fichier dans notre Workspace courant :
Passer le fichier en Check out pour pouvoir le modifier puis ouvrir ce template simplement en double cliquant dessus
Le workflow de ce build apparait sur la surface de design XAML de Visual Studio 2010.
Cliquer sur le bouton Collapse All en haut à droit de la surface de design pour masquer les détails du processus de build standard.
Nous allons afficher la boite à Outils (Ctrl Alt X). On constate que Visual Studio vient en standard avec une collection impressionnante d'activités dédiées à Team Build en plus des activités de base Workflow Foundation 4.0
L'étape suivante va consister à glisser une activité Sequence située dans la catégorie Control Flow de la boite à outils, juste au dessous de la séquence Check in Gated Changes To, puis renommer le titre de la séquence en Deploy Database
Il suffit ensuite de glisser le bloc If à l'intérieur de la séquence pour gérer les préconditions d'exécution du déploiement
Double cliquer sur le bloc If pour afficher le détails de ses propriétés
Nous allons entrer la condition du bloc If, pour cela appuyer sur F4 pour afficher la fenêtre de propriétés et cliquer sur le bouton à droite de la propriété Condition. Dans la boite, entrer la condition suivante :
Editer la zone Working Directory et entrer la valeur : BuildDetail.DropLocation
Nous terminerons par les messages d'output de l'activité Invoke Process, Glisser au dessous du bloc Standard Output l'activité WriteBuildMessage
Afficher la fenêtre de propriétés et configurer le Display Name à VSDBCMD Output, Configurer l'importance à : Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High. et enfin le message avec stdOutput comme indiqué ci dessous :
Glisser ensuite l'activité WriteMessageError au dessous du bloc Handle Error Output, et configurer le Display Name en VSDBCMD Error, et le message à errOutput.
Aucun commentaire:
Enregistrer un commentaire