[Engine-devel] How to utilize Jenkins to do your dirty (build) work for you...

--=_d543864b-a903-4efd-9bb5-a1966dfe6475 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit 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. ;) Regards, Mike --=_d543864b-a903-4efd-9bb5-a1966dfe6475 Content-Type: application/x-shellscript; name=jenkins.sh Content-Disposition: attachment; filename=jenkins.sh Content-Transfer-Encoding: base64 IyEgL2Jpbi9iYXNoCiMKIyBDb3B5cmlnaHQgKGMpIDIwMTIgUmVkIEhhdCwgSW5jLgojCiMgTGlj ZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNl Iik7CiMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRo IHRoZSBMaWNlbnNlLgojIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoj CiMgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoj CiMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0 aW5nLCBzb2Z0d2FyZQojIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1 dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP TlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiMgU2VlIHRoZSBMaWNl bnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAoj IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgojCgp1c2FnZSgpIHsKIyAgICBlY2hvICJV c2FnZTogJHtNRX0gWy1oXSAtcyBTRVJWRVJOQU1FIC11IFVTRVJOQU1FIFstdl0iCiAgICBlY2hv ICJVc2FnZTogJHtNRX0gWy1oXSBbLWZdIFstdl0iCiAgICBlY2hvICIiCiMgICAgZWNobyAiICAt cyBTRVJWRVJOQU1FIC0gVGhlIElQL0ZRRE4gZm9yIHRoZSBHSVQgc2VydmVyLiAgICAgICAgICAg KGVnIHlvdXIgbWFjaGluZSkiCiMgICAgZWNobyAiICAtdSBVU0VSTkFNRSAgIC0gVGhlIHVzZXIg eW91IGFyZSB1c2luZyBvbiB0aGUgR0lUIHNlcnZlci4gKGVnIHlvdXIgdXNlcikiCiAgICBlY2hv ICIgIC12ICAgICAgICAgICAgLSBUdXJuIG9uIHZlcmJvc2l0eS4iCiAgICBlY2hvICIgIC1mICAg ICAgICAgICAgLSBVc2UgZm9yY2UgKGRvbid0IHN0b3AgaWYgYSBjcml0aWNhbCBzdGVwIGZhaWxz KS4iCiAgICBlY2hvICIgIC1oICAgICAgICAgICAgLSBUaGlzIGhlbHAgdGV4dC4iCiAgICBlY2hv ICIiCgogICAgZXhpdCAwCn0KCmZ1bmN0aW9uIHByaW50U3VjY2VzcyB7CiAgICBpZiBbICQyID0g MCBdCiAgICB0aGVuCiAgICAgICAgc3VjY2Vzc1N0cj0nW1NVQ0NFU1NdJwogICAgZWxzZQogICAg ICAgIHN1Y2Nlc3NTdHI9J1tGQUlMRURdJwogICAgZmkKCiAgICBsaW1pdD0kKGVjaG8gNzkgLSAk KCBlY2hvICRzdWNjZXNzU3RyIHwgd2MgLW0pIHwgYmMpCiAgICBzdGFydD0kKGVjaG8gMSArICQo ZWNobyAkMSB8IHdjIC1tKSB8IGJjKQoKICAgIGVjaG8gLW4gJDEnICcKCiAgICBmb3IgaSBpbiBg c2VxICRzdGFydCAkbGltaXRgOwogICAgZG8KICAgICAgICBlY2hvIC1uICcuJwogICAgZG9uZQoK ICAgIGVjaG8gJyAnJHN1Y2Nlc3NTdHIKfQoKZnVuY3Rpb24geXVtSW5zdGFsbCB7CiAgICB5dW0g aW5zdGFsbCAkVkVSQk9TRSAteSAkMQoKICAgIHN1Y2Nlc3M9JD8KICAgIHByaW50U3VjY2VzcyAi SW5zdGFsbGVkICQxIiAkc3VjY2Vzcwp9CgpmdW5jdGlvbiBzdGFydFNlcnZpY2UgewogICAgY2hr Y29uZmlnICQxIG9uCiAgICBzdWNjZXNzPSQ/CiAgICBwcmludFN1Y2Nlc3MgIkVuYWJsZWQgJDEg c2VydmljZSBvbiBzdGFydC11cCIgJHN1Y2Nlc3MKCiAgICBpZiBbICRzdWNjZXNzIF0KICAgIHRo ZW4KICAgICAgICBzZXJ2aWNlICQxIHN0YXJ0CiAgICAgICAgc3VjY2Vzcz0kPwogICAgICAgIHBy aW50U3VjY2VzcyAiU3RhcnRlZCAkMSBzZXJ2aWNlIiAkc3VjY2VzcwogICAgZmkKfQoKZnVuY3Rp b24gaW5zdGFsbFBsdWdpbiB7CiAgICBqYXZhIC1qYXIgL3RtcC9qZW5raW5zLWNsaS5qYXIgLXMg aHR0cDovL2xvY2FsaG9zdDo4MDgwIGluc3RhbGwtcGx1Z2luICQxCiAgICBwcmludFN1Y2Nlc3Mg Ikluc3RhbGxlZCBKZW5raW5zICQxIHBsdWdpbiIgJD8KfQoKVkVSQk9TRT0nLXEnCndoaWxlIGdl dG9wdHMgOmhmdiBvcHRpb247IGRvCiAgICBjYXNlICRvcHRpb24gaW4KIyAgICAgICAgcykgU0VS VkVSTkFNRT0kT1BUQVJHOzsKIyAgICAgICAgdSkgVVNFUk5BTUU9JE9QVEFSRzs7CiAgICAgICAg dikgVkVSQk9TRT0nJzs7CiAgICAgICAgZikgRk9SQ0U9dHJ1ZTs7CiAgICAgICAgaCkgdXNhZ2U7 OwogICAgZXNhYwpkb25lCgojaWYgW1sgIiRTRVJWRVJOQU1FIiA9ICcnIHx8ICIkVVNFUk5BTUUi ID0gJycgXV0KI3RoZW4KIyAgICBlY2hvICJFUlJPUjogT25lIG9yIG1vcmUgcmVxdWlyZWQgcGFy YW1ldGVycyBhcmUgbWlzc2luZy4iCiMgICAgdXNhZ2UKI2ZpCgoKZWNobyAiSW5zdGFsbGluZyBw cmUtcmVxdWlzaXRlczoiCmVjaG8gIj09PT09PT09PT09PT09PT09PT09PT09PT09IgoKeXVtSW5z dGFsbCBudHAKCmlmICFncmVwICIxMC41LjI2LjEwIiAvZXRjL250cC5jb25mICY+IC9kZXYvbnVs bAp0aGVuCiAgICBlY2hvICJcbnNlcnZlciAxMC41LjI2LjEwICMgQWRkZWQgYnkgamVua2lucyBp bnN0YWxsIHNjcmlwdC5cbiIgPj4gL2V0Yy9udHAuY29uZgogICAgcHJpbnRTdWNjZXNzICJBZGRl ZCB3b3JraW5nIE5UUCBzZXJ2ZXIiICQ/CmZpCgoKeXVtSW5zdGFsbCBqYXZhCnl1bUluc3RhbGwg Z2l0CgppZiBncmVwIEZlZG9yYSAvZXRjL3JlZGhhdC1yZWxlYXNlICY+IC9kZXYvbnVsbAp0aGVu CiAgICB5dW1JbnN0YWxsIG1hdmVuCmVsc2UKICAgIHJwbSAtVXZoIGh0dHA6Ly9kb3dubG9hZC5m ZWRvcmFwcm9qZWN0Lm9yZy9wdWIvZXBlbC82L2kzODYvZXBlbC1yZWxlYXNlLTYtNS5ub2FyY2gu cnBtCiAgICB3Z2V0ICRWRVJCT1NFIC1PIC9ldGMveXVtLnJlcG9zLmQvZXBlbC1hcGFjaGUtbWF2 ZW4ucmVwbyBodHRwOi8vcmVwb3MuZmVkb3JhcGVvcGxlLm9yZy9yZXBvcy9kY2hlbi9hcGFjaGUt bWF2ZW4vZXBlbC1hcGFjaGUtbWF2ZW4ucmVwbwogICAgeXVtSW5zdGFsbCBhcGFjaGUtbWF2ZW4K ZmkKCnl1bUluc3RhbGwgcG9zdGdyZXNxbC1zZXJ2ZXIKeXVtSW5zdGFsbCBwb3N0Z3Jlc3FsLWNv bnRyaWIKCmlmIFsgIiQocnBtIC1xIHBvc3RncmVzcWwgfCBjdXQgLWYyIC1kJy0nIHwgY3V0IC1m MSAtZCcuJykiID0gIjgiIF0KdGhlbgogICAgc3UgLSBwb3N0Z3JlcyAtYyAnaW5pdGRiIC1VIHBv c3RncmVzIC1EIC92YXIvbGliL3Bnc3FsL2RhdGEvJwplbHNlCiAgICBzdSAtIHBvc3RncmVzIC1j ICdwZ19jdGwgaW5pdGRiJwpmaQoKcHJpbnRTdWNjZXNzICJJbml0aWFsaXplZCBEQiIgJD8KCmVj aG8gIiIKZWNobyAiSW5zdGFsbGluZyBKZW5raW5zIENJOiIKZWNobyAiPT09PT09PT09PT09PT09 PT09PT09PSIKCndnZXQgJFZFUkJPU0UgLU8gL2V0Yy95dW0ucmVwb3MuZC9qZW5raW5zLnJlcG8g aHR0cDovL3BrZy5qZW5raW5zLWNpLm9yZy9yZWRoYXQvamVua2lucy5yZXBvCgpwcmludFN1Y2Nl c3MgJ0Rvd25sb2FkZWQgSmVua2lucyByZXBvJyAkPwoKcnBtIC0taW1wb3J0IGh0dHA6Ly9wa2cu amVua2lucy1jaS5vcmcvcmVkaGF0L2plbmtpbnMtY2kub3JnLmtleQoKcHJpbnRTdWNjZXNzICdJ bXBvcnRlZCBKZW5raW5zIFJQTSBrZXknICQ/Cgp5dW1JbnN0YWxsIGplbmtpbnMKCmlmIFtbICIk c3VjY2VzcyIgIT0gIjAiICYmICEkRk9SQ0UgXV0KdGhlbgogICAgZWNobyAiRkFUQUw6IENhbid0 IGluc3RhbGwgSmVua2lucywgZXhpdGluZy4iCiAgICBleGl0IDEKZmkKCnN0YXJ0U2VydmljZSBq ZW5raW5zCgppZiBbWyAiJHN1Y2Nlc3MiICE9ICIwIiAmJiAhJEZPUkNFIF1dCnRoZW4KICAgIGVj aG8gIkZBVEFMOiBDYW4ndCBzdGFydCBKZW5raW5zIHNlcnZpY2UsIGV4aXRpbmcuIgogICAgZXhp dCAxCmZpCgojc3UgLSAtcyAvYmluL2Jhc2ggLWMgInNzaCAtbyAnU3RyaWN0SG9zdEtleUNoZWNr aW5nIG5vJyAkVVNFUk5BTUVAJFNFUlZFUk5BTUUgJ2VjaG8gU3VjY2VzcyA+IC9kZXYvbnVsbCci IGplbmtpbnMKCiNwcmludFN1Y2Nlc3MgIkFkZGVkIHNlcnZlciAkU0VSVkVSTkFNRSB0byBrbm93 biBob3N0cyBsaXN0IiAkPwoKI3N1IC0gLXMgL2Jpbi9iYXNoIC1jICJpZiBbICEgLWUgfi8uc3No L2lkX3JzYS5wdWIgXTsgdGhlbiBzc2gta2V5Z2VuIC1xIC10IHJzYTsgZmkgJiYgc3NoLWNvcHkt aWQgJFVTRVJOQU1FQCRTRVJWRVJOQU1FIiBqZW5raW5zCgojcHJpbnRTdWNjZXNzICJHZW5lcmF0 ZWQgJiBkZXBsb3llZCBTU0ggcHVibGljLWtleSIgJD8KCgplY2hvICIiCmVjaG8gIkluc3RhbGxp bmcgSmVua2lucyBQbHVnaW5zOiIKZWNobyAiPT09PT09PT09PT09PT09PT09PT09PT09PT09IgoK ZWNobyAiV2FpdCAzMHMgZm9yIGplbmtpbnMgdG8gZ28gdXAuLiIKc2xlZXAgMzBzCgp3Z2V0ICRW RVJCT1NFIC1PIC90bXAvamVua2lucy1jbGkuamFyIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9qbmxw SmFycy9qZW5raW5zLWNsaS5qYXIKCnByaW50U3VjY2VzcyAiRG93bmxvYWRlZCBKZW5raW5zIENM SSIgJD8KCndnZXQgJFZFUkJPU0UgLU8gL3RtcC9qZW5raW5zLXVwZGF0ZS1jZW50ZXIudG1wIGh0 dHA6Ly91cGRhdGVzLmplbmtpbnMtY2kub3JnL3VwZGF0ZS1jZW50ZXIuanNvbgoKdGFpbCAtbiAr MiAvdG1wL2plbmtpbnMtdXBkYXRlLWNlbnRlci50bXAgfCBoZWFkIC1uIC0xID4gL3RtcC9qZW5r aW5zLXVwZGF0ZS1jZW50ZXIuanNvbgoKY3VybCAtWCBQT1NUIC1kIEAvdG1wL2plbmtpbnMtdXBk YXRlLWNlbnRlci5qc29uIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC91cGRhdGVDZW50ZXIvYnlJZC9k ZWZhdWx0L3Bvc3RCYWNrCgpwcmludFN1Y2Nlc3MgIlxuSW5pdGlhbGl6ZWQgSmVua2lucyB1cGRh dGUgY2VudGVyIiAkPwoKaW5zdGFsbFBsdWdpbiBnaXQKaW5zdGFsbFBsdWdpbiBjaGVja3N0eWxl Cmluc3RhbGxQbHVnaW4gZmluZGJ1Z3MKaW5zdGFsbFBsdWdpbiBidWlsZC1uYW1lLXNldHRlcgpp bnN0YWxsUGx1Z2luIHNhZmVyZXN0YXJ0CgpqYXZhIC1qYXIgL3RtcC9qZW5raW5zLWNsaS5qYXIg LXMgaHR0cDovL2xvY2FsaG9zdDo4MDgwIHNhZmUtcmVzdGFydAoKcHJpbnRTdWNjZXNzICJSZXN0 YXJ0ZWQgSmVua2lucyBhZnRlciBwbHVnaW5zIGluc3RhbGxlZCIgJD8KCmVjaG8gIkplbmtpbnMg c2hvdWxkIG5vdyBiZSBpbnN0YWxsZWQgJiB3b3JraW5nLCBlbmpveSEiCgpleGl0IDAKCg== --=_d543864b-a903-4efd-9bb5-a1966dfe6475 Content-Type: application/x-compressed-tar; name=oVirt-engine.jobs.tar.gz Content-Disposition: attachment; filename=oVirt-engine.jobs.tar.gz Content-Transfer-Encoding: base64 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 --=_d543864b-a903-4efd-9bb5-a1966dfe6475--

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.
Regards, Mike

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 :)
Regards, Mike
participants (2)
-
Mike Kolesnik
-
Yair Zaslavsky