Ruby on rails 在Windows服务器上托管的TeamCity上设置Rails项目
我正在TeamCity上建立我的第一个Ruby项目,它托管在Windows服务器上,但我遇到了一个问题。现在,由于服务器可能没有安装所需的gems,我添加了一个命令行构建步骤: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
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=…
MySql--help
如果找不到MySql,则此操作将失败env.Path
变量的以下每个设置运行它:
C:\Program Files\MySQL\MySQL Server 5.6\bin\;%环境路径%
。TeamCity将C:\Program Files\MySQL\MySQL Server 5.6\bin\
前置到构建代理的值,如#1所示。结果就是我们想要的,#1+#2请注意,引用的答案在前缀路径和现有路径之间使用了一个冒号
:
,但我认为您需要一个分号相反,这是因为Windows用来分隔PATH变量中的不同条目。如果你发现一个有效,另一个无效,请编辑此帖子或添加评论代码>但我不确定我是否正确使用了它?bin的路径是实际的ruby.exe
还是…?是的,您应该查找ruby的安装位置,而不是安装程序。在RDP中运行时,运行WHERE bundle
,查看Windows正在使用的路径<代码>其中
应该可以在所有现代风格的Windows上使用。我没有在我的任何机器上使用Ruby,否则我会为您测试一下。我以前在构建代理中看到过类似的错误,所以我认为这就是您所需要的。这也被标记为已接受,那么这是否意味着它对您有效?我刚刚注意到,在我的一个构建配置上更新env.PATH时,您在这里输入的值应该由Team City追加;我上面提到的链接是基于一个bug的解决方案。因此,您只需要将Ruby的正确路径放入值中,而不必担心附加它;TeamCity应该处理这个问题。我正在更新帖子以反映这一点。@jumpingcode注意编辑1不正确。为了完整起见,我将其保留在原处,但使用编辑2对其进行了更正