2016-08-19 73 views
1

我們以前使用詹金斯作爲我們的CI工具,我可以在詹金斯窗口從運行shell腳本的步驟是:在Windows奴隸詹金斯如何在Teamcity Windows代理上運行shell腳本?

2.加工序

1.安裝的cygwin shell腳本

3.增加 「出口PATH =/cygdrive/C的/ dev /工具/ Cygwin的/ bin中:$ PATH」 作爲第一行

然後我可以在詹金斯執行任何shell腳本。

現在我們需要轉移到teamcity,並且我發現上述步驟不適用於teamcity。當我運行「命令行」並將第一行設置爲「export PATH =/cygdrive/c/dev/tools/cygwin/bin:$ PATH」時,它給我一個錯誤,因爲「'export'是不承認爲內部或外部命令「。

有什麼辦法可以解決嗎?我不想將我們的shell腳本重新寫入cmd。我的神

+1

你在構建代理計算機安裝cygwin(如果它們與服務器不同),你之後重新啓動了服務嗎? –

+0

您是否想在構建觸發時執行shell腳本?我對「TeamCity代理」感到困惑。 – Brandon

+0

@EvolveSoftwareLtd是的我在生成代理上安裝了cygwin並且已經重新啓動了它 – user3203342

回答

2

這很容易解決。這個錯誤當然不是來自Cygwin,而是來自CMD。 export命令只在Bash腳本中有意義; cmd無法知道如何處理它。

您需要做的只是向CMD指定腳本應該使用Cygwin的命令解釋器(bash)運行。所以,你可以只指定長路徑bash可執行文件和腳本,如

C:\dev\tools\cygwin\bin\bash D:\myscript.sh 

,或者你可以添加到cygwin目錄到你的機器的PATH變量的路徑。您可以通過更改系統設置做到這一點,添加路徑那裏,或者你可以做到這一點作爲腳本上面的一部分:

# this is not necessary if you have already changed the System Variable to include the path 
set PATH=C:\dev\tools\cygwin\bin;%PATH% 

bash D:\myscript.sh