Voir le flux RSS

Blog de Hinault Romaric (.NET Core, ASP.NET Core, Azure, DevOps)

[Actualité] Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging

Note : 3 votes pour une moyenne de 5,00.
par , 16/09/2016 à 06h24 (1787 Affichages)
Dans le précèdent billet de blog, vous avez configuré votre serveur d’intégration continue de telle sorte qu’il soit capable de fonctionner avec votre système de contrôle de version (Bitbucket).


Chaque fois qu’un commit est effectué, un trigger permet de détecter les changements dans le code source, et procéder à une build automatique du projet. A la suite de l’opération de build, le statut est publié sur Bitbucket, permettant ainsi aux développeurs de les visualiser sans qu’ils n’aient besoin de se connecter au serveur d’intégration continue.

Cependant, dans une démarche d’industrialisation du développement, on ne peut pas parler d’intégration continue sans évoquer le déploiement continu (CD, continuous delivery).

Mais, avant de déployer, nous devons d’abord créer un package de notre application. Dans cette deuxième partie de la série, nous verrons comment effectuer le packaging de notre solution.

La première chose à faire, c’est de vous assurer que Microsoft Web Deploy est installé sur le serveur sur lequel est disponible TeamCity. Sinon, procédez à l’installation de ce dernier.

Création d’un profil de publication

Dans Visual Studio, ouvrez votre solution, puis faites un clic droit sur votre projet dans l’explorateur de solutions et cliquez sur « Publier » dans le menu contextuel qui s’affiche.
Dans la fenêtre qui s’affiche :

  • cliquez sur « Personnaliser » dans la zone « Sélectionner une cible de publication » ;
  • entrez le nom du profil de publication dans la fenêtre qui s’affiche et cliquez sur le bouton « Ok » ;
  • dans la fenêtre qui s’affiche, déroulez la zone « Publish method » et sélectionnez « Web Deploy Package » ;
  • dans la zone de saisie « Package location », saisissez « $(SolutionDir)\artifacts\webdeploy\Integration\TeamCityTest.zip » ;
  • cliquez sur suivant, puis choisissez la configuration (Release ou Debug) ;
  • puis cliquez sur « Fermer », ensuite acceptez l’enregistrement des modifications qui ont été apportées à votre profil de publication.


Nom : image12.png
Affichages : 1304
Taille : 35,2 Ko

Un fichier avec l’extension « pubxml » sera créé dans le dossier « Properties/PublishProfiles » de votre projet.

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<!--
Ce fichier est utilisé par le processus de publication/package de votre projet Web. Vous pouvez personnaliser le comportement de ce processus
en modifiant ce fichier MSBuild. Pour en savoir plus à ce sujet, consultez la page http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>Package</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <DesktopBuildPackageLocation>$(SolutionDir)\artifacts\webdeploy\Integration\TeamCityTest.zip</DesktopBuildPackageLocation>
    <PackageAsSingleFile>true</PackageAsSingleFile>
    <DeployIisAppPath>TeamCityTest</DeployIisAppPath>
    <PublishDatabaseSettings>
      <Objects xmlns="" />
    </PublishDatabaseSettings>
  </PropertyGroup>
</Project>

Commitez les modifications que vous avez apportées à votre projet. Avec ce nouveau profil de publication, lorsque TeamCity procèdera à la compilation de votre application, un package de déploiement sera généré et sauvegardé dans le répertoire que vous avez mentionné. La zone « Artifacts » dans la liste des résultats de vos build permettra désormais de voir les fichiers de déploiement qui ont été générés.

Mais, pour cela, vous devez apporter quelques modifications aux paramètres de configuration de votre build.

Modification des paramètres de build pour prendre en compte le déploiement

Revenez dans TeamCity. Ouvrez la page de configuration des paramètres de votre Buil. Dans le menu à gauche, cliquez sur « General Settings » et saisissez « artifacts\webdeploy\Integration=>Webdeploy » dans la zone « Artifact path »

Nom : image13.png
Affichages : 1217
Taille : 60,0 Ko

Ce chemin doit être celui que vous avez défini précédemment dans les paramètres de votre profil de publication. Enregistrez les modifications.

Cliquez sur « Build Steps » dans le menu, puis modifiez votre Build Steep « Visual Studio (sln) ».

Dans la zone « Command line parameters », saisissez les informations suivantes et enregistrez les modifications :

/p:DeployOnBuild=True
/p:PublishProfile="PackageIntegration"
/p:ProfileTransformWebConfigEnabled=False
Nom : image14.png
Affichages : 1239
Taille : 55,4 Ko

  • /p:DeployOnBuild=True permet de signaler que vous souhaitez qu’un package soit généré à chaque build de votre application dans TeamCity ;
  • /p:PublishProfile="PackageIntegration" est le profil de publication qui sera utilisé. Celui que vous avez créé précédemment ;
  • /p:ProfileTransformWebConfigEnabled=False permet de désactiver la transformation du fichier de configuration (WebConfig). En principe, la transformation se fait par WebDeploy.


Si vous procédez à la build de votre application dans TeamCity, vous verrez comme artifacts vos fichiers de déploiement :

Nom : image15.png
Affichages : 1250
Taille : 58,2 Ko

Désormais, vous êtes prêt pour le déploiement. Dans la prochaine et dernière partie, nous verrons comment automatiser le déploiement sur Microsoft Azure. Restez connecter.

Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Viadeo Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Twitter Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Google Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Facebook Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Digg Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Delicious Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog MySpace Envoyer le billet « Intégration et déploiement continu avec TeamCity, Bitbucket et Azure, partie 2 : Packaging » dans le blog Yahoo

Commentaires

  1. Avatar de Hinault Romaric
    • |
    • permalink