version control and continuous integration · 2014-07-28 · continuous integration #jenkinsconf....

18
Jenkins User Conference Israel # jenkinsconf Sven Erik Knop @p4sven Perforce Software www.perforce.com July 16, 2014 Version Control and Continuous Integration #jenkinsconf

Upload: others

Post on 07-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Version Control and Continuous Integration · 2014-07-28 · Continuous Integration #jenkinsconf. Jenkins User Conference Israel #jenkinsconf Overview ... Development Development

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Jenkins User Conference Israel #jenkinsconf

Thank You To Our SponsorsPlatinum

Gold

Silver