2013-11-15 188 views
0

我在Team City上設置了我的第一個Ruby項目,該託管在Windows服務器上,但是我遇到了問題。現在,因爲服務器可能沒有安裝所需的寶石,我添加了一個命令行構建步驟:在Windows服務器上託管的TeamCity上設置Rails項目

bundle install 

現在,我想這將是足夠的,但顯然bundle不被識別爲一個內部或外部命令。除此之外,如果我將RDP放入服務器,如果我從任何地方運行bundle install,那很好,只是通知我沒有找到gemfile。

任何想法,如果我錯過了一個步驟,或者我這樣做是錯誤的?

回答

2

很可能這是TeamCity找不到ruby可執行文件路徑的問題。

您可以通過在生成參數部分的生成配置中覆蓋PATH環境變量的值來解決此問題。

env.PATH=/path/to/ruby;%env.PATH% 

this answer爲適當的文檔鏈接等


編輯#1

我更新該TeamCity的應該照顧我的配置之一,當發現附加值,所以你不要需要設置路徑等於自己。上面提到的帖子是TeamCity覆蓋值的錯誤的解決方法,但已被更正。見在鼠標懸停幫助以獲取更多信息:

Mouse-over help for Environment Variables


編輯#2

我測試編輯#1,發現情況並非如此。你需要

  • 創建變量的環境env.Path
  • ,並設置它的價值本身加上新的路徑;在我的例子中,C:\Program Files\MySQL\MySQL Server 5.6\bin\;%env.Path%
  • 你做不是需要說env.Path=...如上所列;這就是配置文件的樣子。

我測試了這一點,通過執行以下操作:

  1. 創建一個新的項目,沒有倉庫
  2. 添加命令行構建步驟'回聲%ENV。PATH%
  3. 增加了一個命令的步驟調用MySql的mysql --help如果它不能找到的MySql這將失敗

然後我跑了每個以下設置爲env.Path變量:

  1. 未添加/更改; TeamCity按原樣報告構建代理的環境變量。
  2. 只需加入C:\Program Files\MySQL\MySQL Server 5.6\bin\即可。 TeamCity僅報告該條目。
  3. 添加爲C:\Program Files\MySQL\MySQL Server 5.6\bin\;%env.Path%。 TeamCity將C:\Program Files\MySQL\MySQL Server 5.6\bin\預置爲#1中顯示的構建代理的值。結果是我們想要的,#1 +#
+0

請注意,引用的答案在前綴路徑和現有PATH之間使用冒號':',但我認爲您需要一個分號';'而不是,因爲這是Windows用來分隔PATH變量中的不同條目的原因。如果您發現其中一個有效,另一個不可用,請編輯此帖子或添加評論。 – Damon

+0

我試過'env.PATH = C:\ RailsInstaller \ Ruby1.9.3;'但我不確定我是否正確使用它?路徑是實際的'ruby.exe'或者......的路徑嗎? – ediblecode

+0

是的,您應該查找Ruby安裝到的位置,而不是安裝程序。當你使用RDP時,運行'WHERE bundle'來查看Windows正在使用的路徑。我認爲應該在所有現代風格的Windows上提供「WHERE」。我沒有在我的機器上使用Ruby,否則我會爲你測試。我之前剛剛看到了與構建代理的類似錯誤,所以我認爲這就是您所需要的。這也被標記爲接受,那是否意味着它對你有用? – Damon

相關問題