Ruby Can';t运行Jenkins Build-bundle:“;“未找到命令”;

Ruby Can';t运行Jenkins Build-bundle:“;“未找到命令”;,ruby,cucumber,jenkins,bundler,Ruby,Cucumber,Jenkins,Bundler,我目前正在尝试为我的一些任务运行jenkins构建。我所有的gems都是使用Bundler安装的。gem存储在供应商文件夹中 但是,当我在执行shell构建步骤中尝试并运行bundle install--deployment时,出现以下错误: Started by user anonymous Building in workspace /Users/Shared/Jenkins/Home/jobs/cukes/workspace [workspace] $ /bin/sh -xe/var/fo

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

但是,当我在执行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
这快把我逼疯了!它在我本地的机器上运行,没有问题。为什么詹金斯看不到我的宝石

任何帮助都会很好

干杯,
Jon要验证的第一件事:

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

(要验证路径/环境:插入运行
env
的shell构建步骤)

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

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

如果bundle安装在
/usr/local/bin/bundle
中(通过
哪个bundle
确定),您只需在
/usr/bin
中添加一个符号链接即可:


ln-s/usr/local/bin/bundle/usr/bin/bundle
您可以通过运行
哪个bundle
来查看在哪里安装了
bundle
,并从那里运行
bundle
命令

对于我来说,我最初是通过war文件安装的,这是。然而,用户手册更清楚地表明,可能有更好的方法来解决这个问题

我最终通过以下方式卸载了macOS上Jenkins的WAR文件:

  • 正在删除.war文件
  • 正在删除~/.jenkins目录

  • 然后,我和
    bundle
    开始工作。

    在我的例子中,我将这一行添加到脚本的第一行:

    #!/bin/bash -l
    

    您好,我添加了/bin/bash,但是/usr/bin/bash不可用。我正在使用centos。工作了,但为什么?:-)@我不知道。如果您得到了答案,请让我知道:-)@RezaDehnavi在手册中说
    -l
    “使bash充当一个登录shell”。所以它在本地机器中对OP起作用,所以在添加它之后,它在jenkins中也起作用