无法运行Jenkins Build - bundle:"找不到命令"

Jon*_*isp 12 ruby cucumber bundler jenkins

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

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

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
Run Code Online (Sandbox Code Playgroud)

这真让我抓狂!它在我的本地机器上运行没有问题.詹金斯为什么看不到我的宝石?

任何帮助都会很棒!

干杯,乔恩

Rez*_*avi 13

就我而言,我将此行添加到脚本的第一行:

#!/bin/bash -l
Run Code Online (Sandbox Code Playgroud)

  • 有效,但为什么?:-) (4认同)
  • @RezaDehnavi 在手册中说“-l”“使 bash 的行为就像它被作为登录 shell 调用一样”。所以它在本地机器上适用于OP,所以添加它后它也可以在詹金斯中使用 (3认同)

sti*_*sti 11

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

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


mal*_*cot 2

首先要验证的事情:

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

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