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

Ruby on rails 在Windows服务器上托管的TeamCity上设置Rails项目,ruby-on-rails,ruby,windows,teamcity,Ruby On Rails,Ruby,Windows,Teamcity,我正在TeamCity上建立我的第一个Ruby项目,它托管在Windows服务器上,但我遇到了一个问题。现在,由于服务器可能没有安装所需的gems,我添加了一个命令行构建步骤: bundle install 现在我认为这就足够了,但显然,bundle不能被识别为内部或外部命令。除此之外,如果我将RDP导入服务器,如果我从任何地方运行bundle install,都可以,只是通知我找不到任何文件 关于我是否错过了一个步骤,或者我走错了方向,有什么想法吗?这很可能是TeamCity没有找到ruby

我正在TeamCity上建立我的第一个Ruby项目,它托管在Windows服务器上,但我遇到了一个问题。现在,由于服务器可能没有安装所需的gems,我添加了一个命令行构建步骤:

bundle install
现在我认为这就足够了,但显然,
bundle
不能被识别为内部或外部命令。除此之外,如果我将RDP导入服务器,如果我从任何地方运行
bundle install
,都可以,只是通知我找不到任何文件


关于我是否错过了一个步骤,或者我走错了方向,有什么想法吗?

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

您可以通过在“生成参数”部分的生成配置中重写PATH环境变量的值来解决此问题

env.PATH=/path/to/ruby;%env.PATH%
有关文档等的正确链接,请参阅


编辑#1

我注意到,在更新我的一个配置时,TeamCity应该负责附加值,这样就不需要将路径设置为自身相等。上面提到的帖子是针对TeamCity覆盖值的bug的一种解决方法,但是已经纠正了。有关更多信息,请参见鼠标上方的帮助:


编辑#2

我测试了edit#1,发现情况并非如此。你确实需要

  • 创建环境变量
    env.Path
  • 并将其值设置为自身加上新路径;在我的示例中,
    C:\ProgramFiles\MySQL\MySQL Server 5.6\bin\;%环境路径%
  • 您不需要说上面列出的
    env.Path=…
    ;这就是配置文件的外观
我通过以下操作对此进行了测试:

  • 创建了一个没有存储库的新项目
  • 在'echo%env.Path%中添加了命令行生成步骤
  • 添加了一个命令步骤来调用MySql
    MySql--help
    如果找不到MySql,则此操作将失败
  • 然后,我为
    env.Path
    变量的以下每个设置运行它:

  • 未添加/更改;TeamCity按原样报告构建代理的环境变量
  • 添加为C:\Program Files\MySQL\MySQL Server 5.6\bin\。TeamCity只报告该条目
  • 添加为
    C:\Program Files\MySQL\MySQL Server 5.6\bin\;%环境路径%
    。TeamCity将
    C:\Program Files\MySQL\MySQL Server 5.6\bin\
    前置到构建代理的值,如#1所示。结果就是我们想要的,#1+#2

  • 请注意,引用的答案在前缀路径和现有路径之间使用了一个冒号
    ,但我认为您需要一个分号
    但我不确定我是否正确使用了它?bin的路径是实际的
    ruby.exe
    还是…?是的,您应该查找ruby的安装位置,而不是安装程序。在RDP中运行时,运行
    WHERE bundle
    ,查看Windows正在使用的路径<代码>其中
    应该可以在所有现代风格的Windows上使用。我没有在我的任何机器上使用Ruby,否则我会为您测试一下。我以前在构建代理中看到过类似的错误,所以我认为这就是您所需要的。这也被标记为已接受,那么这是否意味着它对您有效?我刚刚注意到,在我的一个构建配置上更新env.PATH时,您在这里输入的值应该由Team City追加;我上面提到的链接是基于一个bug的解决方案。因此,您只需要将Ruby的正确路径放入值中,而不必担心附加它;TeamCity应该处理这个问题。我正在更新帖子以反映这一点。@jumpingcode注意编辑1不正确。为了完整起见,我将其保留在原处,但使用编辑2对其进行了更正