Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf....
Transcript of Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf....
![Page 1: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/1.jpg)
Jenkins User Conference Israel #jenkinsconf
Sven Erik Knop
@p4sven
Perforce Software
www.perforce.com
July 16, 2014
Version Control and
Continuous Integration
#jenkinsconf
![Page 2: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/2.jpg)
Jenkins User Conference Israel #jenkinsconf
Overview
• Why version management for CI?
• Why CI for version management?
• The role of code review
• How all this can be done in Perforce
![Page 3: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/3.jpg)
Jenkins User Conference Israel #jenkinsconf
Why version management for CI?
• Foundation of Continuous Integration
– Has all the data CI requires
– Keeps the history and audit trail
– Reproducible builds
– Triggers the build
![Page 4: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/4.jpg)
Jenkins User Conference Israel #jenkinsconf
Just-in-time delivery
![Page 5: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/5.jpg)
Jenkins User Conference Israel #jenkinsconf
Triggering the build
• Automatic
– Committing into monitored code lines
• User initiated
– Code review
– Pull requests
![Page 6: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/6.jpg)
Jenkins User Conference Israel #jenkinsconf
Why CI for Version Control?
• It’s all about the mainline (master, trunk ...)
![Page 7: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/7.jpg)
Jenkins User Conference Israel #jenkinsconf
Mainline
• The mainline model:
– The source of all branches
– The ultimate target of all changes
• The mainline should be:
– Always buildable
– Always testable
– Always deployable
– Ideal: Always deliverable
![Page 8: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/8.jpg)
Jenkins User Conference Israel #jenkinsconf
• Detect build and test errors early
• Stay production ready
CI protects your mainline
![Page 9: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/9.jpg)
Jenkins User Conference Israel #jenkinsconf
• Cost of bug fixing increases with
the maturity of the product
• Good code review can
– Catch problems early to increase productivity
and save money
– Improve compliance with coding standards
– Educate team members about the code
The role of code review
![Page 10: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/10.jpg)
Jenkins User Conference Israel #jenkinsconf
• Optimize reviewer’s productivity
• Link code review and CI
– Ensure changes build and pass their tests before
they are being reviewed
Improving your code review
![Page 11: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/11.jpg)
Jenkins User Conference Israel #jenkinsconf
• What is Perforce?
• Development Pipeline
• Jenkins Integration
How does this look like in Perforce?
![Page 12: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/12.jpg)
Jenkins User Conference Israel #jenkinsconf
• Massive Scalability
• Distributed or centralized workflows
• Collaboration
• Multi-site Teams
• Large Binaries
• IP Security
What is Perforce?
Development
Development
ManufacturingHeadquarters
![Page 13: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/13.jpg)
Jenkins User Conference Israel #jenkinsconf
Perforce Powers Market Leaders
13,000
20,000 users
9,500 users
500+ terabytes
5,000+ users
coders & designers
Complete delivery
pipeline
7,000+ releases/year11,000+ users
10+ sites
2,500 users
10,000,000
Perforce xact/day
Everything! 11,000+ users
Mobile ICsGames
& Animation Cloud/SaaS Electronics Finance Enterprise
13
![Page 14: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/14.jpg)
Jenkins User Conference Israel #jenkinsconf
Pipeline
Code review
![Page 15: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/15.jpg)
Jenkins User Conference Israel #jenkinsconf
Jenkins Plugin
• Community
– Old tech (P4 CLI)
– Established
– Base for other plugins
(Job DSL)
• Perforce
– New tech (P4JAVA)
– Enterprise-friendly
(Credentials)
– Review-friendly
(shelving)
– Knows Swarm
![Page 16: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/16.jpg)
Jenkins User Conference Israel #jenkinsconf
Demonstration
![Page 17: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/17.jpg)
Jenkins User Conference Israel #jenkinsconf
Summary
• Version management needs CI
• CI needs version management
![Page 18: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development](https://reader034.fdocuments.us/reader034/viewer/2022043009/5f9aa0fc0af78d01ad4fc0f8/html5/thumbnails/18.jpg)
Jenkins User Conference Israel #jenkinsconf
Thank You To Our SponsorsPlatinum
Gold
Silver