我正在Team City上设置我的第一个Ruby项目,该项目托管在Windows Server上,但我遇到了问题。现在,因为服务器可能没有安装所需的gem,所以我添加了一个命令行构建步骤:
bundle install
现在我认为这已经足够了,但显然bundle
不被认为是内部或外部命令。除非,如果我进入服务器RDP,如果我从任何地方运行bundle install
,它很好,只是通知我没有找到gemfile。
关于我是否错过了一步的任何想法,或者我是以错误的方式解决这个问题?
答案 0 :(得分:2)
很可能这是TeamCity没有找到ruby可执行文件路径的问题。
您可以通过在Build Parameters部分中覆盖构建配置中PATH环境变量的值来解决此问题。
env.PATH=/path/to/ruby;%env.PATH%
请参阅this answer以获取文档的正确链接等。
编辑#1
我注意到在更新我的一个配置时,TeamCity应该负责附加值,因此不要需要设置等于自身的路径。上面提到的帖子是TeamCity覆盖值的错误的解决方法,但是已经纠正了。有关详细信息,请参阅鼠标悬停时的帮助:
编辑#2
我测试了编辑#1并发现情况并非如此。你需要
env.Path
C:\Program Files\MySQL\MySQL Server 5.6\bin\;%env.Path%
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\;%env.Path%
。 TeamCity将C:\Program Files\MySQL\MySQL Server 5.6\bin\
添加到#1中显示的构建代理程序的值中。结果就是我们想要的,#1 +#2