Introducing the Vagrant plugin for Jenkins
Look! A screencast of the plugin in action!
The impossible has happened. Not only have I written a plugin for Jenkins, I've released it. An event I've long avoided has finally come to pass, mostly thanks to the fantastic Ruby plugin development support developed largley by Charles Lowell.
The Vagrant plugin is still fairly new, and "beta" tested. Thus far I've modeled it after the fantastic Android Emulator plugin in that it will bring up a Vagrant VM for the duration of the job, and then destroy it afterwards.
As you can see, the Vagrant plugin adds a couple new build steps to the configure page. One thing to note is that the provisioning is operated as a separate step, instead of bundled in with the boot of the Vagrant machine. This is purposeful, to allow any additional set up of the environment prior to running Puppet or Chef.
The plugin does of course expect that you have a functional VirtualBox environment on the slave you're running the job on, if you don't, Vagrant will explode with a fantastic stack-trace and probably burn your house down.
In the near future
I'm thinking about bundling vagrant-snap with the plugin to allow fancy snapshotting support, but I'm not sure of a good definite usecase for that just yet.
If there's anything you'd like to see, please file a request on the GitHub issues page.
You can find the plugin:
NOTE: Be sure to grab version 0.1.2 or later!