在Windows服务器上托管的TeamCity上设置Rails项目

时间:2013-11-15 09:40:41

标签: ruby-on-rails ruby windows teamcity

我正在Team City上设置我的第一个Ruby项目,该项目托管在Windows Server上,但我遇到了问题。现在,因为服务器可能没有安装所需的gem,所以我添加了一个命令行构建步骤:

bundle install

现在我认为这已经足够了,但显然bundle不被认为是内部或外部命令。除非,如果我进入服务器RDP,如果我从任何地方运行bundle install,它很好,只是通知我没有找到gemfile。

关于我是否错过了一步的任何想法,或者我是以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:2)

很可能这是TeamCity没有找到ruby可执行文件路径的问题。

您可以通过在Build Parameters部分中覆盖构建配置中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. 在`echo%env.Path%
  3. 中添加了命令行构建步骤
  4. 添加了一个命令步骤来调用MySql mysql --help 如果找不到MySql将会失败
  5. 然后,我为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 +#2