Can't run Jenkins Build - bundle: “command not

2019-02-06 08:00发布

I am currently trying to run a jenkins build for some of my cucumber tasks. All of my gems have been installed by using the Bundler. The gems are stored in the vendor folder.

However, when I try and run bundle install --deployment in the execute shell build step, I get the following error:

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

This is driving me crazy! It runs on my local machine with no problems. Why can't Jenkins see my gems?

Any help would be great!

Cheers, Jon

5条回答
2楼-- · 2019-02-06 08:10

For me I had originally installed it via the war file as that's the way recommended on the Getting Started Guide. However, the user handbook makes it much more clear that there are probably better ways to install Jenkins.

I ended up uninstalling the WAR file of Jenkins on macOS by:

  1. Deleting the .war file.
  2. Deleting the ~/.jenkins directory.

I then reinstalled via home-brew, and bundle started working.

查看更多
混吃等死
3楼-- · 2019-02-06 08:17

If bundle is installed in /usr/local/bin/bundle (determine this with which bundle) you could just add a symbolic link to bundle in /usr/bin like so:

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

查看更多
放我归山
4楼-- · 2019-02-06 08:22

Depending on the way you installed Jenkins, it might be running as a separate user, typically as user jenkins. If you have installed bundle into a nonstandard directory which isn't in the default PATH, like /usr/local/bin, you need to:

  • Add /usr/local/bin to the PATH of the jenkins user (check ~jenkins/.bashrc) or
  • Configure PATH environment variable in Jenkins global configuration (or slave configuration if building on a slave) or
  • Modify the build script to refer to bundle using a full path name.
查看更多
Juvenile、少年°
5楼-- · 2019-02-06 08:22

First things to verify:

  • Make sure bundle is installed on the machine where Jenkins runs.
  • If it installed, make sure it's on the path for the user under which Jenkins runs

(To verify path/environment: insert shell build step that runs env)

查看更多
一夜七次
6楼-- · 2019-02-06 08:32

You could see where is bundle is installed by running which bundle and run the bundle command from there

查看更多
登录 后发表回答