web-dev-qa-db-fra.com

Créer et déployer une application Web avec TFS 2015 Build

Nous venons d'installer TFS 2015 (mise à jour 1) sur site et essayons de créer un système d'intégration/construction continue à l'aide du nouveau système de construction TFS. La construction fonctionne bien et me donne le feu vert, mais quand je regarde la construction par défaut, elle n'a construit que les binaires à partir du répertoire bin, et il ne semble pas y avoir de moyen facile de déployer l'application sur site sur un serveur local .

Il existe deux options de déploiement pour une copie du système de fichiers et un script PowerShell, et il serait certainement assez facile de les utiliser pour copier des fichiers sur un nouveau serveur, mais comme la construction n'a construit que les binaires, je ne vois pas d'outil pour rassembler les artefacts Web (cshtml, images, scripts, css, etc.) pour cela.

Après une recherche google exhaustive, je n'ai trouvé qu'un seul article qui en parle à:

http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/

Cependant, cela utilise WebDeploy et crée un package de déploiement plutôt désordonné.

Comment puis-je déployer le site (application Web MVC standard, en fait mes tests utilisent le site standard par défaut créé par l'assistant de création de projet) avec des artefacts sur un serveur local de la manière la plus simple possible? Je ne veux pas avoir à installer WebDeploy sur les serveurs, et je préfère utiliser PowerShell ou quelque chose pour déployer les artefacts finaux.

La build est juste le modèle de build standard de Visual Studio, avec 4 étapes (Build, Test, Index & Publish, Publish Build Artifacts).

16
Erik Funkenbusch

Nous utilisons l'étape "Visual Studio Build" et comme arguments pour MSBuild, nous utilisons la ligne suivante:

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)

Dans la page à onglet Variables, DeploymentConfiguration doit être configuré. Il doit s'agir du nom du profil de publication (nom de fichier du fichier pubxml). Si le nom du fichier est Build.pubxml, le profil de publication est Build.

par exemple:

/p:DeployOnBuild=True /p:PublishProfile=Build
15
Sebastian Siemens

Je voulais ajouter que Ben Day a une excellente rédaction qui nous a aidés à empaqueter rapidement puis à publier dans plusieurs environnements via Release Manager .

Ses arguments msbuild ressemblent à ceci:

/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website

La différence entre cela et la réponse acceptée est que cet ensemble de paramètres met tout en scène dans un dossier d'artefacts, puis l'enregistre dans le cadre de la génération. Nous pouvons ensuite déployer exactement le même code à plusieurs reprises.

Nous capturons les fichiers web.env.config à côté du dossier for-deploy, puis utilisons des transformations xdt dans le processus de publication pour nous assurer que tout est mis à jour pour l'environnement dans lequel nous déployons. Cela fonctionne bien pour tous nos projets Web.

8
Reacher Gilt