Matt Connolly's Blog
my brain dumps here…
Using RVM with Jenkins
I’ve recently set up RVM running with Jenkins, and finally have it all working just the way I want.
I’m running on OpenIndiana and have Jenkins running as its own user. I ssh in as that user and install rvm for that user and verified that I can run ruby tests with rvm from the terminal.
There’s a “RVM plugin” (version 0.1) for Jenkins which has great promise – I like the idea of running all build steps with RVM setup. However, I couldn’t get it to find my rvm installation no matter how much stuffing around with environment variables I did. So I’m not using it for now.
The trick was to use a “Execute shell” build step and use a script like so:
#!/bin/bash -e export TERM=xterm [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Use the correct ruby rvm use 1.9.2@gemset --create # Do any setup # e.g. possibly do 'rake db:migrate db:test:prepare' here bundle install # Finally, run your tests rake test # and build the gem rake build # and install the gem locally rake install
This was for a ruby gem project which installs that gem in the named rvm gemset. Other projects can use this gem simply by using that same gemset.
Note also the line: “export TERM=xterm” – rvm is designed to run in a terminal where the TERM environment variable is set. Apparently there was a change to gracefully ignore its absence or be able to use TERM=dumb for no colour, (github issue 698), but that doesn’t appear to be working for me in rvm 1.10.2.
Good luck.