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
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.
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
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
)
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:
- Deleting the .war file.
- Deleting the ~/.jenkins directory.
I then reinstalled via home-brew, and bundle
started working.
You could see where is bundle
is installed by running which bundle
and run the bundle
command from there