2012-04-27 4 views
16

Come si passano i percorsi degli oggetti a uno script in TeamCity. Lo scenario è questoTeamCity Build & Deploy: come si passano i percorsi dipendenti degli artefatti a uno script?

  1. Costruire Progetto
  2. Distribuire Project (con una dipendenza manufatto a 1 #)

Fase 2 è costituito da aa script che

  1. arresta un servizio (per sbloccare i file)
  2. Copia gli artefatti di costruzione sul server
  3. riavvia il servizio

sto lottando con la fase 2, immagino ho bisogno di passare il percorso dei manufatti costruire nello script, ma non riesco a vedere come si fa?

+0

Quale versione di TeamCity stai usando? – Bronumski

+0

TeamCity 7.0.2 è la versione che ho installato –

risposta

15

Facciamo qualcosa del genere. Non è chiaro al 100%, ma sembra che tu voglia eseguire la build e la distribuzione come due build separati in TeamCity con una dipendenza artefatto dalla build di distribuzione sulla build principale che è esattamente ciò che facciamo. Ecco come lo facciamo.

  • Imposta i tuoi artefatti dalla build principale che sembra abbiano già fatto.

    Example: **\bin\release\*.* => bin
  • Impostare la dipendenza manufatto (abbiamo anche fare uno Snap Shot dipendenza così ma non dobbiamo) per tirare le artefatti dalla costruzione principale e metterle in una cartella locale nella vostra costruzione distribuzione .

    Example: Artifacts paths: bin\**\*.* Destination path: bin\
  • usiamo una miscela di MSBuild e PowerShell per fare il lavoro distribuzione effettiva. In ogni caso è possibile fare riferimento agli artefatti utilizzando un percorso relativo.

    se la cartella di lavoro di costruzione è simile al seguente:

     
    root 
    |- bin (Artifacts pulled in from main build) 
    |- src 
    |- build (Where your build and deployment scripts live) 
    

    Si potrebbe accedere ai file bin dal vostro script di distribuzione si trova nella cartella di build come:

    ..\bin\[your files]

È quindi possibile passa il percorso ai tuoi artefatti di costruzione come questo

%teamcity.build.checkoutDir%\bin\ 
+1

Grazie, penso che il bit che non avevo completamente compreso fosse come la dipendenza artefatto ha trascinato le risorse di costruzione nella sua directory di lavoro% teamcity.build.checkoutDir% \ bin \ era il percorso di cui avevo bisogno. TeamCity è ottimo ma parte della documentazione è un po 'imperscrutabile –

+1

Non hai bisogno del% teamcity.build.checkoutDir% bin variabile \ andrebbe bene ma se lo rende più chiaro per la manutenzione allora tanto meglio. – Bronumski

+0

Se si utilizza PowerShell, aggiungere "-ExecutionPolicy bypass" alla riga di comando, l'impostazione della politica sulla macchina non sembra funzionare (stranamente) –