SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Jenkins
JenkinsJenkins
Jenkins
 
Play 2 Java Framework with TDD
Play 2 Java Framework with TDDPlay 2 Java Framework with TDD
Play 2 Java Framework with TDD
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
 
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
 
Sponia with QingCloud
Sponia with QingCloudSponia with QingCloud
Sponia with QingCloud
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
 
Jenkins
JenkinsJenkins
Jenkins
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Continuous Delivery - Voxxed Days Cluj-Napoca 2017
Continuous Delivery - Voxxed Days Cluj-Napoca 2017Continuous Delivery - Voxxed Days Cluj-Napoca 2017
Continuous Delivery - Voxxed Days Cluj-Napoca 2017
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 

Destacado (8)

Jenkins without Install
Jenkins without InstallJenkins without Install
Jenkins without Install
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Continuous Integration with Jenkins and ANT
Continuous Integration with Jenkins and ANTContinuous Integration with Jenkins and ANT
Continuous Integration with Jenkins and ANT
 
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GITCONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
ガチ(?)対決!OSSのジョブ管理ツール
ガチ(?)対決!OSSのジョブ管理ツールガチ(?)対決!OSSのジョブ管理ツール
ガチ(?)対決!OSSのジョブ管理ツール
 

Similar a Jenkins Reviewbot

Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
Anton Weiss
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
Anuj Sharma
 

Similar a Jenkins Reviewbot (20)

Jenkins 1
Jenkins 1Jenkins 1
Jenkins 1
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
Ciprian redinciuc continuous integration with jenkins for i os
Ciprian redinciuc   continuous integration with jenkins for i osCiprian redinciuc   continuous integration with jenkins for i os
Ciprian redinciuc continuous integration with jenkins for i os
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
 
Jenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And GroovyJenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And Groovy
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and Groovy
 
Jenkins
JenkinsJenkins
Jenkins
 
Juc boston2014.pptx
Juc boston2014.pptxJuc boston2014.pptx
Juc boston2014.pptx
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Contineous integration
Contineous integrationContineous integration
Contineous integration
 

Más de Yardena Meymann (7)

Writing Asynchronous Programs with Scala & Akka
Writing Asynchronous Programs with Scala & AkkaWriting Asynchronous Programs with Scala & Akka
Writing Asynchronous Programs with Scala & Akka
 
Scale up your thinking
Scale up your thinkingScale up your thinking
Scale up your thinking
 
Building Micro-Services with Scala
Building Micro-Services with ScalaBuilding Micro-Services with Scala
Building Micro-Services with Scala
 
Concurrency in Scala - the Akka way
Concurrency in Scala - the Akka wayConcurrency in Scala - the Akka way
Concurrency in Scala - the Akka way
 
All about scala
All about scalaAll about scala
All about scala
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Scala at HUJI PL Seminar 2008
Scala at HUJI PL Seminar 2008Scala at HUJI PL Seminar 2008
Scala at HUJI PL Seminar 2008
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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