On 03/26/2012 04:08 PM, Mike Kolesnik wrote:
> 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.
Yes that should work relatively well, but it limits you in the sense that it ONLY monitors
the HEAD, while if you use default (** or */*) then it will monitor changes on all
branches regardless if you on them or not - it could be a double edged sword if you have a
lot of garbage in the repo, but on the other hand it might drive you to clean it :)