10 Dec 2013

HowTo: build the jenkins vagrant-plugin

At present I am preparing some of the tools helpfull/necessary for continuous integration: jenkins, vagrant, gitlab, jira and puppet.

To make the first two of those work nicely together there exists a jenkins plugin called vagrant-plugin at rtyler/vagrant-plugin , smartlogic/vagrant-plugin and aberrios85/vagrant-plugin

I decided to use the last version, as the original plugin supports only very aged versions of jenkins and vagrant.

This is how the plugin can be build into a hpi file: (validated by hours of trial and error)

# install rvm and jruby in one command
curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby
# activate rvm
source ~/.rvm/scripts/rvm
# get the vagrant-plugin sources
git clone https://github.com/aberrios85/vagrant-plugin.git
cd vagrant-plugin
# install needed gems
bundle install
# build the whole bunch
jpi build

Now you can install the plugin pkg/vagrant.hpi into your jenkins. But pay attention – depending on your webserver configuration you might need to increase settings … for example „client_max_body_size“ in nginx, if you want to use the upload feature of the jenkins web interface.