Wie kann ich nach einem Build mit TeamCity bereitstellen?

75

Ich richte TeamCity als meinen Build-Server ein.

Ich habe mein Projekt eingerichtet, es wird korrekt von Subversion aktualisiert und in Ordnung erstellt.

Was kommt als nächstes?

Idealerweise möchte ich, dass es automatisch auf einem Testserver bereitgestellt wird und manuell auf einem Live- / Staging-Server bereitgestellt wird.

Was ist der beste Weg, um dies zu erreichen?

Sollte ich meiner Lösung ein Web Deployment-Projekt hinzufügen, da ich C # / ASP.Net verwende?

Neil N.
quelle
1
Hast du Inedos BuildMaster gesehen? Ein häufiger Workflow besteht darin, Build-Artefakte aus TeamCity zu entfernen und mit BuildMaster auf verschiedenen Servern bereitzustellen / zu konfigurieren. Kurzreferenzartikel : inedo.com/support/kb/1031/… (Haftungsausschluss: Ich arbeite für Inedo)
Karl Harnagy
Ich habe zuvor eine ähnliche Empfehlung abgegeben, arbeite aber nicht für Inedo. Ein Blick lohnt sich.
Damon

Antworten:

61

In diesem Artikel wird erläutert, wie Sie das WebDeploy-Tool von Microsoft von TeamCity aus aufrufen, um eine Webanwendung auf einem Remote-Webserver bereitzustellen. Ich habe es verwendet, um es auf einem Testwebserver bereitzustellen und beim Einchecken Selentests durchzuführen.

http://www.mikevalenty.com/automatic-deployment-from-teamcity-using-webdeploy/

  1. Installieren Sie WebDeploy
  2. Aktivieren Sie Webkonfigurationstransformationen
  3. Konfigurieren Sie TeamCity BuildRunner
  4. Konfigurieren Sie TeamCity Build-Abhängigkeiten

Die MSBuild-Argumente, die für meine Anwendung funktionierten, waren:

/p:Configuration=QA  
/p:OutputPath=bin  
/p:DeployOnBuild=True  
/p:DeployTarget=MSDeployPublish  
/p:MsDeployServiceUrl=https://myserver:8172/msdeploy.axd  
/p:username=myusername  
/p:password=mypassword  
/p:AllowUntrustedCertificate=True  
/p:DeployIisAppPath=ci  
/p:MSDeployPublishMethod=WMSVC
Mike Valenty
quelle
Wie stelle ich die E-Mail-Benachrichtigung nach Abschluss der Bereitstellung ein?
user384080
@ Michael Valenty: Ich habe die gegebene Lösung als ausprobiert MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC. Es gibt mir einen Fehler `MSBUILD: Fehler MSB1008: Es kann nur ein Projekt angegeben werden. Switch: WebSite / New`
Nevin Raj Victor
14

Ich habe einen ziemlich langen Blog-Beitrag zu diesem Thema geschrieben, der Sie interessieren könnte:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Grundsätzlich:

  • Installieren Sie Web Deployment-Projekte
  • Fügen Sie Ihrer Lösung ein Webbereitstellungsprojekt hinzu
  • Richten Sie den Lösungskonfigurationsmanager so ein, dass eine Build-Konfiguration "Bereitstellung" vorliegt
  • Lassen Sie die Teamstadt diesen Build-Schalter verwenden, wenn Sie den Build ausführen
  • Trinken Sie ein Bier und staunen Sie über Ihre automagischen Attraktionen
Doug
quelle
2
Beachten Sie, dass diese Antwort für vs2013 + nicht mehr relevant ist, da sie Web Deployment Projects entfernt hat
enorl76
10

Wir verwenden Octopus Deploy , um unsere Umgebungen über Team City zu verwalten.

Als Build-Prozess haben wir eine Octopus-Version und eine Octopus-Bereitstellung. Erstellen einer Version in Octupus, die dann auch automatisch bereitgestellt wird.

Da Octopus unsere Umgebungen verwaltet, wurden auch Variablen bereitgestellt, die wir häufig verwenden und mit demselben Build insgesamt eine neue Umgebung erstellen können.

Amit
quelle