Dans ce billet nous allons voir comment déployer un site sur IIS à l’aide de Jenkins. Pour cela, quelques prérequis :
- Le projet à déployer doit être intégré à un contrôle de sources (dans notre exemple nous utiliserons SVN)
- Posséder une machine (dans notre exemple la machine s’appellera « dotnet-web » avec IIS et Microsoft Web Deploy d’installés
- Avoir une plateforme d’intégration Jenkins ayant la possibilité d’utiliser MSBuild
- Avoir un site créé sur IIS (dans notre exemple le site s’appellera «DemoBlog »)
Création du Job
- Cliquer sur « Nouveau Job »
- Nommer le job, dans notre cas nous l’appellerons « DemoBlog-Deploy »
- Sélectionner « Construire un projet free-style »
Configuration du Job
- Sélectionner la gestion de code source sur laquelle votre projet est disponible (ici Subversion)
- Dans la section « Ce qui déclenche le build » je recommande de laisser tout désactivé à moins de vouloir déployer le site à chaque commit.
- Dans la section « Build », cliquer sur « Ajouter une étape au build » puis séléctionner « Build a Visual Studio projet or solution using MSBuild » puis indiquez les informations suivantes :
- MSBuild Version : MSBuild 4.0
- MSBuild Build File : DemoBlog.sln (le fichier de solution de votre site)
- Command Line Arguments :
/t:clean /t:rebuild /p:Configuration=Debug /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:MSDeployPublishMethod=RemoteAgent /p:CreatePackageOnPublish=True /p:DeployIisAppPath="DemoBlog" /p:MsDeployServiceUrl=dotnet-web /p:username=administrateur /p:password=ServerPassword
Arrêtons-nous un instant sur cette dernière ligne qui est très importante et passons en revue chacun des arguments.
- /t:clean : Nettoie la solution
- /t:rebuild : Rebuild la solution
- /p:Configuration=Debug : La configuration utilisée pour générer la solution (Debug / Release)
- /p:DeployOnBuild=True : Pour déployer le site après chaque build
- /p:DeployTarget=MsDeployPublish : La cible du déploiement (ici MS Deploy)
- /p:MSDeployPublishMethod=RemoteAgent : La méthode de déploiement sur la cible
- /p:CreatePackageOnPublish=True : Pour créer un package .zip contenant le résultat de la publication
- /p:DeployIisAppPath="DemoBlog" : Le chemin du site sur IIS. Si vous voulez déployer dans un sous-site il suffit de séparer les valeurs par un « / » de la manière suivante « Site/SousSite »
- /p:MsDeployServiceUrl=dotnet-web : le nom ou l’ip de la machine sur laquelle vous souhaitez déployer l’application
- /p:username=administrateur : Le login du compte avec lequel vous allez réaliser le déploiement
- /p:password=ServerPassword : Le mot de passé du compte utilisateur
Cliquer ensuite sur « Sauver »
Lancement du build et vérification
Tout est en place vous pouvez désormais lancer le build via le lien « Lancer le build »
Vérifiez alors que le build s’exécute bien en scrutant la sortie console. Une fois le build en succès vous pouvez retourner dans IIS constater que le site a bien été déployé.
Plus d'informations
Installation MS-Build sur Jenkins : https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin