Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't run Jenkins Build - bundle: "command not found"

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

like image 824
Jonathan Warykowski Avatar asked Apr 28 '12 17:04

Jonathan Warykowski


3 Answers

In my case, I added this line to the first of script:

#!/bin/bash -l
like image 153
Reza Dehnavi Avatar answered Nov 01 '22 01:11

Reza Dehnavi


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.
like image 44
sti Avatar answered Nov 01 '22 02:11

sti


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

like image 3
Dan Herman Avatar answered Nov 01 '22 00:11

Dan Herman