Ruby Can';t运行Jenkins Build-bundle:“;“未找到命令”;
我目前正在尝试为我的一些任务运行jenkins构建。我所有的gems都是使用Bundler安装的。gem存储在供应商文件夹中 但是,当我在执行shell构建步骤中尝试并运行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
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
,则需要:
- 将
添加到jenkins用户的路径(选中~jenkins/.bashrc)或/usr/local/bin
- 在Jenkins全局配置中配置PATH环境变量(如果构建在从机上,则配置从机配置)或
- 修改生成脚本以使用完整路径名引用
捆绑包
/usr/local/bin/bundle
中(通过哪个bundle
确定),您只需在/usr/bin
中添加一个符号链接即可:
ln-s/usr/local/bin/bundle/usr/bin/bundle
您可以通过运行哪个bundle
来查看在哪里安装了bundle
,并从那里运行bundle
命令对于我来说,我最初是通过war文件安装的,这是。然而,用户手册更清楚地表明,可能有更好的方法来解决这个问题
我最终通过以下方式卸载了macOS上Jenkins的WAR文件:
然后,我和
bundle
开始工作。在我的例子中,我将这一行添加到脚本的第一行:
#!/bin/bash -l
您好,我添加了/bin/bash,但是/usr/bin/bash不可用。我正在使用centos。工作了,但为什么?:-)@我不知道。如果您得到了答案,请让我知道:-)@RezaDehnavi在手册中说
-l
“使bash充当一个登录shell”。所以它在本地机器中对OP起作用,所以在添加它之后,它在jenkins中也起作用