The document discusses using Jenkins and Reviewboard together to enable pre-tested commits. Developers can post code reviews to Reviewboard, which will then trigger a Jenkins job. The Jenkins job retrieves the code diff from Reviewboard, applies it, and runs tests and validation. Jenkins then posts the results as a comment back to Reviewboard. This allows developers to test and validate their code changes before peer review and committing to the main branch. The presentation includes details on the tools used, the typical workflow, and an architecture diagram of how Jenkins and Reviewboard integrate for pre-tested commits. It concludes with a demo of the process.
1. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Pre-Tested Commits with Jenkins
and Reviewboard
Yardena Meymann
VMware
http://www.vmware.com/
@jenkinsconf
2. 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)
3. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Typical developer workflow
Code
Test
locally
Peer
review
Push
See
Jenkins
results
4. 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
5. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Solution: pre-tested commits
Code
Test
locally
See
Jenkins
results
Peer
Review
Push
6. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Inspiration
GitHub - CloudBees
JetBrains
TeamCity
Gerrit
7. 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
11. 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
12. 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)
13. 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.push
15. 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