2012-04-27 32 views
16

如何將工件路徑傳遞給TeamCity中的腳本。 的場景是該TeamCity構建和部署:如何將相關工件路徑傳遞給腳本?

  1. 生成項目
  2. 部署項目(與工件的依賴於#1)

步驟2由AA腳本的哪個

  1. 停止服務(解鎖文件)
  2. 將構建工件複製到服務器
  3. 重新啓動服務

我正在努力與第2步,我想我需要將構建工件的路徑傳遞到腳本,但我不明白你是怎麼做到的?

+0

您使用的是什麼版本的TeamCity? – Bronumski 2012-04-27 17:15:43

+0

TeamCity的7.0.2是我安裝 – 2012-04-27 17:30:55

回答

15

我們做這樣的事情。這不是100%清楚,但它看起來像你想做的構建和部署作爲TeamCity中的兩個獨立的構建與來自主構建上的部署構建的構件依賴性,這正是我們所做的。這是我們如何做到的。

  • 從主版本設置你的工件,它聽起來像你已經完成。

    Example: **\bin\release\*.* => bin
  • 設置神器依賴(我們也做快照的依賴,以及,但你不必)從主構建拉你的文物,並把它們放入一個本地文件夾中部署的構建。

    Example: Artifacts paths: bin\**\*.* Destination path: bin\
  • 我們使用MSBuild和PowerShell的混合物來做實際的部署工作。在每種情況下,您都可以使用相對路徑來引用工件。

    如果構建工作文件夾是這樣的:

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

    你會從位於build文件夾類似的部署腳本訪問的bin文件:

    ..\bin\[your files]

然後,您可以通過路徑到您的構建文物像這樣

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

感謝的版本,我想我還沒有完全瞭解位是神器依賴是怎麼做到的構建工件到其工作目錄%teamcity.build.checkoutDir%\ BIN \是我需要的路徑。 TeamCity很棒,但其中一些文檔有點難以理解 – 2012-04-27 17:28:01

+1

你不需要%teamcity.build.checkoutDir%變量bin \會很好,但如果它使得維護更清晰,那麼一切都會更好。 – Bronumski 2012-04-27 17:34:50

+0

如果你正在使用PowerShell添加「-ExecutionPolicy旁路」的命令行,設置計算機上的策略似乎並沒有工作(奇怪) – 2012-04-27 19:43:34

相關問題