Jenkins Reviewbot
-
Upload
yardena-meymann -
Category
Technology
-
view
1.788 -
download
4
description
Transcript of Jenkins Reviewbot
![Page 1: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/1.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Pre-Tested Commits with Jenkins
and Reviewboard
Yardena Meymann
VMware http://www.vmware.com/
@jenkinsconf
![Page 2: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/2.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
About our team
Developing a new product for IT financial
management
≈30 engineers, Israel and Bangalore
Infrastructure: Virtual Appliance, Linux,
Java, Spring, tcServer, vPostgres, ExtJS
Development: Git, Maven, IntelliJ, Bugzilla,
Reviewboard, Jenkins (compilation, static
analysis, tests, code coverage)
![Page 3: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/3.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Typical developer workflow
Code
Test locally
Peer review
Push
See Jenkins results
![Page 4: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/4.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
But what if things go wrong?
Code
Test locally
Peer review
Push
See Jenkins results
Build failure
![Page 5: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/5.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Solution: pre-tested commits
Code
Test locally
See Jenkins results
Peer Review
Push
![Page 6: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/6.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Inspiration
GitHub - CloudBees
JetBrains
TeamCity
Gerrit
![Page 7: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/7.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
• http://www.reviewboard.org/
• Open source code review tool developed
at VMware
• Can be used from command line or via web
• Written in Python, cross-platform client
• Integration with SVN, Git and (of course)
Perforce
• Can send e-mails for reviews and comments
![Page 8: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/8.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
![Page 9: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/9.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
![Page 10: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/10.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
![Page 11: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/11.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Jenkins Patch Parameter plugin
Create a job which is a copy of the “regular” main
line build, but with a patch parameter
![Page 12: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/12.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Integrating Reviewboard and Jenkins
• Developer posts review
• Patch job is triggered via Jenkins API
• Instead of patch file, we pass review URL
• Jenkins downloads the diff using
Reviewboard API, applies it and builds the
project
• Jenkins reports the build result by sending a
comment to Reviewboard (via API)
![Page 13: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/13.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
1. trigger
Jenkins Reviewbot architecture
Reviewboard
server Jenkins
server
3. apply patch and build
0. submit diff for review
2. retrieve the diff 5. Jenkins
approval
@
3+. peer approval
@ 4. post build result
git
6.p
ush
![Page 14: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/14.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
DEMO
And now…
![Page 15: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/15.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Gory details
• Developed a “Reviewbot” plugin –
extension of the Patch Parameter plugin
• A wrapper script to postreview – plan to
replace it with a trigger based on mail
![Page 16: Jenkins Reviewbot](https://reader031.fdocuments.in/reader031/viewer/2022013102/554bc0a7b4c9053a298b50f1/html5/thumbnails/16.jpg)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Thank You To Our Sponsors