Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Pre-Tested Commits with Jenkins
and Reviewboard
Yardena Meymann
VMware
http://www.vmware.com/
@jenkinsconf
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)
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Typical developer workflow
Code
Test
locally
Peer
review
Push
See
Jenkins
results
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
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Solution: pre-tested commits
Code
Test
locally
See
Jenkins
results
Peer
Review
Push
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Inspiration
GitHub - CloudBees
JetBrains
TeamCity
Gerrit
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
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Reviewboard
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
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)
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
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
DEMO
And now…
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
Jenkins User Conference Israel , 06 June 2013 #jenkinsconf
Thank You To Our Sponsors

More Related Content

Jenkins Reviewbot

  • 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
  • 8. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf Reviewboard
  • 9. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf Reviewboard
  • 10. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf Reviewboard
  • 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
  • 14. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf DEMO And now…
  • 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
  • 16. Jenkins User Conference Israel , 06 June 2013 #jenkinsconf Thank You To Our Sponsors