Hi,
-- Intro --
When working on your local GIT repo you probably do a lot of:
mvn clean install
Additionally, if you're working on oVirt-engine you might be doing some of:
mvn test -Penable-dao-tests
mvn install -Pgwt-admin
etc..
This, of course, might take your development computer a while, and hog your resources.
Usually though, if you work on oVirt, you have a host that you use for testing your
changes..
This host probably has a 2/4 cores CPU and at least 4Gb of RAM..
This host is sitting quietly most of the time, consuming mostly electricity but not
doing much.
You're probably not even utilizing it that much even when you are testing something
on it.
It is like a powerful guard dog that you keep tied in the back-yard most of the time,
instead of letting it run free.
Well, I have a suggestion how to put that puppy into good use and also free up your
resources..
-- End Intro --
You can install Jenkins on the host, and have it monitor your local GIT repo for changes,
building your commits as necessary.
This works with every local branch you have - Jenkins will pick up the change (be it a
local commit you just did, or a rebase over the origin) and generate a build for it.
This will allow you to monitor your build results just as you would monitor locally,
while in the same time utilize a (probably) more powerful machine to do this for you. It
will also probably speed up your build cycle, as builds will be executed in parallel.
I have written an installation guide which explains how to do it in the oVirt wiki:
http://www.ovirt.org/wiki/Local_Jenkins_For_The_People
I have also written a script that will run the installation part on the host for you,
so you just need to download the attachment and run it as root on the host, but you will
still need to do some manual work so make sure to check the wiki.
-- Example Jobs --
I am also attaching sample jobs to import to Jenkins.
Make sure to replace the GIT repo URL, you can do this before importing with sed:
# sed -i 's#[git-repo-url]#ssh://[user]@[git-host]/[git-repo-location]#'
oVirt-engine.*
For example:
# sed -i 's#[git-repo-url]#ssh://mkolesni@myhost/~/git/ovirt-engine#'
oVirt-engine.*
You can import them with the command:
# cat [job].xml | java -jar /tmp/jenkins-cli.jar -s
http://localhost:8080 create-job
[job-name]
For example:
# cat oVirt-engine.xml | java -jar /tmp/jenkins-cli.jar -s
http://localhost:8080
create-job oVirt-engine
-- End Example Jobs --
Of course, this might not be ideal in cases when you need 100% percent of your host..
But in such a case you can simply turn off Jenkins, and turn it back on later. ;)
Great idea.
One comment -
I noticed that if u specify */* in "branches to build" then it of course
fetches for you all the branches. If you want to build the current
branch you're working on - use HEAD instead.