2009-12-31 5 views
70

Sto configurando TeamCity come server di build.Come distribuire dopo una build con TeamCity?

Ho il mio progetto impostato, si sta aggiornando correttamente da subversion e sta costruendo ok.

Allora, qual è il prossimo?

Idealmente, mi piacerebbe averlo distribuire automaticamente su un server di prova, con una distribuzione manuale su un server live/staging.

Qual è il modo migliore per farlo?

Poiché sto utilizzando C#/ASP.Net, dovrei aggiungere un progetto di distribuzione Web alla mia soluzione?

+1

Hai visto Inedo's BuildMaster? Un flusso di lavoro comune che vedo è quello di creare artefatti estratti da TeamCity e distribuiti/configurati con BuildMaster su vari server. articolo di riferimento rapido: http://inedo.com/support/kb/1031/integrating-jetbrains-teamcity-with-buildmaster (disclaimer: io lavoro per Inedo) –

+0

ho fatto una raccomandazione simile prima, ma io non lavoro per Inedo . Vale la pena guardare. – Damon

risposta

58

questo articolo viene spiegato come chiamare strumento di Microsoft WebDeploy da TeamCity di implementare una web applicazione a un server Web remoto. L'ho utilizzato per la distribuzione su un server Web di prova ed eseguito test di selenio al momento del check-in.

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

  1. Installare WebDeploy
  2. Abilita Web config trasforma
  3. Configura TeamCity BuildRunner
  4. Configura TeamCity Costruire Dipendenze

Gli argomenti MSBuild che hanno lavorato per la mia applicazione sono:

/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 
+0

come faccio a impostare la notifica via e-mail una volta completata la distribuzione? – user384080

+0

@ Michael Valenty: ho provato la soluzione data as'MSBuild.exe C: \ BuildAgent \ lavori \ 4c7b8ac8bc7d723e \ WebService.sln/p: Configurazione = uscita/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 sito/Nuovo/p: MSDeployPublishMethod = WMSVC'. Mi dà un errore ' MSBUILD: errore MSB1008: è possibile specificare un solo progetto. Switch: WebSite/New' –

14

Ho scritto un post piuttosto lunga del blog su questo argomento che potrebbe interessarti:

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

fondamentalmente:

  • installare progetti di distribuzione web
  • add progetto di distribuzione web alla soluzione
  • impostare il gestore di configurazione della soluzione per disporre di una configurazione di build "Deployment"
  • get squadra della città per utilizzare questo interruttore di compilazione quando si esegue la build
  • bere una birra e meraviglia in gloria al vostro awesomenesss automagiche
+0

nota, questa risposta non è più rilevante per vs2013 + poiché rimuovono i progetti di distribuzione Web – enorl76

9

Stiamo usando Octopus Deploy per gestire i nostri ambienti in cima alla città di squadra.

Come un processo di compilazione abbiamo un polpo di uscita e Octopus Deploy Creazione di un rilascio in Octupus, che è poi anche distribuito automaticamente;

Dal Octopus sta gestendo i nostri ambienti Ha anche fornito variabili che usiamo molto e possiamo usare la stessa build per creare un nuovo ambiente tutti insieme.