无法运行Jenkins Build – bundle:“找不到命令”

我目前正在尝试为我的一些黄瓜任务运行jenkins构建。 我所有的gem都是使用Bundler安装的。 gem存储在vendor文件夹中。

但是,当我尝试在执行shell构建步骤中运行bundle install --deployment时,我收到以下错误:

 Started by user anonymous Building in workspace /Users/Shared/Jenkins/Home/jobs/cukes/workspace [workspace] $ /bin/sh -xe/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh + bundle install --deployment /var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh: line 2: bundle: command not found Build step 'Execute shell' marked build as failure Finished: FAILURE 

这真让我抓狂! 它在我的本地机器上运行没有问题。 jenkins为什么看不到我的gem?

任何帮助都会很棒!

干杯,乔恩

根据您安装Jenkins的方式,它可能作为单独的用户运行,通常作为用户jenkins 。 如果您已将bundle安装到非标准目录(不在默认路径中),例如/usr/local/bin ,则需要:

  • /usr/local/bin添加到jenkins用户的PATH(检查~jenkins / .bashrc)或
  • 在Jenkins全局配置中配置PATH环境变量(如果在从站上构建,则配置从属配置)或
  • 修改构建脚本以使用完整路径名引用bundle

如果bundle安装在/usr/local/bin/bundle (确定使用which bundle )你可以添加一个符号链接到/usr/bin bundle,如下所示:

ln -s /usr/local/bin/bundle /usr/bin/bundle

要validation的第一件事:

  • 确保在Jenkins运行的机器上安装了bundle
  • 如果已安装,请确保它位于Jenkins运行的用户的路径上

(validation路径/环境:插入运行env shell构建步骤)

您可以通过运行which bundle并从那里运行bundle命令来查看bundle的安装位置