SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Continuous Integration For
Real: The Perforce Java
Platform
Hamish Reid
Perforce Software Inc.
OVERVIEW

   •  What do we mean by…
      •  Agile?
      •  Continuous Integration?
   •  Product line highlights:
      •    P4Eclipse + Mylin + MergeQuest
      •    P4Java
      •    P4Ant
      •    P4Maven
      •    (Hudson Perforce Plugin)
      •    (P4Java, P4D)
   •  The Perforce Java Team CI Workflow
WHAT DO WE MEAN BY “AGILE”?

    •  Adaptive processes and workflows:
       •  Feedback- and reality-driven
       •  Flexible goals
    •  Continuous processes and workflows:
       •    No surprises!
       •    Small increments in planning
       •    Small increments in delivery
       •    Small increments in effort
       •    There’s always some version of the final product
    •  Examples:
       •  Scrum, XP, Kanban
WHAT DOES “CONTINUOUS INTEGRATION” MEAN?

   •  The heart of agile processes…
                          (…but not just agile processes).
   •  Martin Fowler’s essentials:
      •  Integration is a non-event.
      •  Any individual developer's work is only a few hours
         away from a shared project state.
      •  Individual work can be integrated back into that state in
         minutes.
      •  Any integration errors are found rapidly and can be fixed
         rapidly.
   •  Trades up-front workflow and infrastructure effort for
      integration simplicity.
   •  Not for every product or workflow.
CONTINUOUS INTEGRATION ELEMENTS (1)

    •  Martin Fowler:
          •    Configuration management
          •    Build and test automation
          •    Self-testing
          •    Frequent commits
          •    Build and test on commit
          •    Fast build / test cycles
          •    Test in production environment clone
          •    Easy to get latest build artifacts
          •    Easy to get latest status
          •    Automated deployment
CONTINUOUS INTEGRATION ELEMENTS (2)

    •  Additionally, from our own experience:
       •  Integration into issues tracker system
       •  Easy / safe / cheap branching…
               …and integrate / merge / resolve cycle
       •  Low burden for developers:
            •  Integration into IDE’s and other common tools
            •  Visualization
            •  “Culturally appropriate”
OUR JAVA TEAM WORKFLOW

   •  We “eat our own dog food”…
               …but we also “eat our customers’ dog food”
   •  Heavy emphasis on continuous integration
   •  (Very) test-driven development process
   •  Jobs-driven process
   •  Branch-centric process:
      •  Dev / shared (team) / main / release
   •  Two modes:
      •  Eclipse-centric development and dev testing
      •  Hudson-centric automation for shared branches
   •  Open Source / off-the-shelf solutions:
      •  Eclipse, Mylin, Junit, Maven, Ant, Hudson, Cruise
         control
KEY ELEMENTS IN OUR CI WORKFLOW

   •    Eclipse + P4Eclipse
   •    P4Eclipse + MergeQuest + Mylin + more…
   •    Hudson + Perforce plugin
   •    Maven + P4Maven
   •    Ant + P4Ant
   •    P4Java
   •    (P4D)
ECLIPSE – THE DEVELOPER'S COMMAND CENTER
ECLIPSE + P4ECLIPSE

    •  All code work done in Eclipse
    •  P4Eclipse supplies the Perforce functionality:
       •    Import as project
       •    Add / edit / delete files
       •    Submit / changelist management
       •    Refactoring
       •    P4Grep, diffs, resolves, branches, merges
    •  All dev testing done using Junit:
       •  Suite-based
       •  Right-click from Eclipse
    •  Mylin – the task master
    •  MergeQuest, branch graph, timelapse…
    •  Mavenized development where needed
HUDSON + PERFORCE

   •  Hudson + P4 extensions central to Perforce Java
      team workflow:
      •  Used to setup builds and tests
      •  Used to store results and raw report data back to SCM
      •  Triggered on successful merges and codeline changes
   •  Uses existing third-party Open Source plugin
      •  Perforce will help develop and maintain
      •  Currently p4 command line based
   •  Typically configured through Hudson control panel
   •  Works with Jenkins, too, of course…
MAVEN + P4MAVEN

   •  Maven used extensively:
      •    Distribute shared team builds
      •    Cache external dependencies
      •    Off-the-shelf build lifecycle support
      •    Tie-ins to Eclipse
      •    Often run from Hudson
   •  P4Maven:
      •    Perforce-developed and supported
      •    P4Java-based
      •    Released 11.1
      •    Full Maven “scm” functionality
      •    MOJO-based extensions for jobs, etc.
      •    Non-core plugin
ANT + P4ANT

    •  P4Java-based
    •  P4Ant targets:
       •  The usual suspects, plus…
       •  …things like shelve / unshelve, fix, job-related tasks,
          etc.
    •  Perforce usage:
       •  Test setups
       •  Builds
       •  Distributions
    •  Example:
       <taskdef resource="com/perforce/ant/tasks/P4Tasks.properties" />
       …
       <target name="p4tasktest" description="Perforce task test">
           <p4jsubmit port="eng-p4java-vm:20101" user="p4jtestuser"
             passwd="p4jtestuser" client="p4TestUserWS" changelist="3391" />
       </target>
P4JAVA

   •    Makes all-Java implementations possible
   •    Native protocol implementation
   •    Clear object model
   •    Underpins:
         •  Nearly all our Java-related CI platform
         •  Perforce Web Services Platform (P4WSP)
LOOKING BACK…

   •  Tools integration (“it’s the tools, stupid!”):
       •  P4Eclipse + Mylin
       •  P4Maven, P4Ant, Hudson Plugin
   •  Visualization:
       •  MergeQuest, P4Eclipse, Timelapse, Branch Graph
       •  Hudson + P4Hudson
   •  Immediacy:
       •  P4Eclipse, Hudson
   •  Flexibility:
       •  …all that and more.
SUMMARY

   •  The Perforce Java product line now forms a platform
   •  Key components:
      •    P4Eclipse
      •    P4Maven
      •    P4Ant
      •    P4Hudson
      •    (P4D, P4Java)
   •  It makes agile continuous integration so easy…
          …that even the Perforce Java team can do it.

Mais conteúdo relacionado

Mais procurados

Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Taller Negócio Digitais
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJulien Pivotto
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
DevOps principles and practices - accelerate flow
DevOps principles and practices - accelerate flowDevOps principles and practices - accelerate flow
DevOps principles and practices - accelerate flowMurughan Palaniachari
 
Getting Started With Jenkins And Drupal
Getting Started With Jenkins And DrupalGetting Started With Jenkins And Drupal
Getting Started With Jenkins And DrupalPhilip Norton
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Take your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to ModernizationTake your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to ModernizationOrtus Solutions, Corp
 
Continuous Integration at Mollie
Continuous Integration at MollieContinuous Integration at Mollie
Continuous Integration at Molliewillemstuursma
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)Chen Cheng-Wei
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps CultureEdureka!
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Matthew Cobby
 
Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013Kobi Moraz
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Mike McGarr
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessAhmed Misbah
 
Deployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsDeployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsNic Swart
 
Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Paul Hacker
 
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...Puppet
 

Mais procurados (20)

Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
Best practices for Continuous Deployment with Drupal - DrupalCon Latin Améric...
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
DevOps principles and practices - accelerate flow
DevOps principles and practices - accelerate flowDevOps principles and practices - accelerate flow
DevOps principles and practices - accelerate flow
 
Getting Started With Jenkins And Drupal
Getting Started With Jenkins And DrupalGetting Started With Jenkins And Drupal
Getting Started With Jenkins And Drupal
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Take your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to ModernizationTake your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to Modernization
 
Continuous Integration at Mollie
Continuous Integration at MollieContinuous Integration at Mollie
Continuous Integration at Mollie
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps Culture
 
Continuous testing
Continuous testingContinuous testing
Continuous testing
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
 
Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using Kubeless
 
Deployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsDeployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA Solutions
 
Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013Lap around ALM with Visual Studio and TFS 2013
Lap around ALM with Visual Studio and TFS 2013
 
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
 

Destaque

Serena Change- & Release-Management
Serena Change- & Release-ManagementSerena Change- & Release-Management
Serena Change- & Release-Managementli-la-e
 
Change Management - Ansatz von Plaut
Change Management - Ansatz von PlautChange Management - Ansatz von Plaut
Change Management - Ansatz von PlautPlaut Consulting
 
Neues Denken in Sales und Marketing - Tag 1
Neues Denken in Sales und Marketing - Tag 1Neues Denken in Sales und Marketing - Tag 1
Neues Denken in Sales und Marketing - Tag 1Bellaada
 
Concepts methodes
Concepts methodesConcepts methodes
Concepts methodesmsk10
 
BLM Webradiomonitor 2012, Goldmedia
BLM Webradiomonitor 2012, GoldmediaBLM Webradiomonitor 2012, Goldmedia
BLM Webradiomonitor 2012, GoldmediaGoldmedia Group
 
23 organisationsentwicklung 2015
23 organisationsentwicklung 201523 organisationsentwicklung 2015
23 organisationsentwicklung 2015Markus Hammele
 
Digicomp change management_2 0_m_schweizer_v3_150317
Digicomp change management_2 0_m_schweizer_v3_150317Digicomp change management_2 0_m_schweizer_v3_150317
Digicomp change management_2 0_m_schweizer_v3_150317Markus Schweizer
 
The future of IT
The future of ITThe future of IT
The future of ITCIONET
 
20160813 getting real – impact of ux
20160813 getting real – impact of ux20160813 getting real – impact of ux
20160813 getting real – impact of uxdiana frank
 
Creating the Agile IT Organisation
Creating the Agile IT OrganisationCreating the Agile IT Organisation
Creating the Agile IT OrganisationFormicio
 
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....BPM&O GmbH
 
141212 broschüre change begleitung für hp de
141212 broschüre change begleitung für hp de141212 broschüre change begleitung für hp de
141212 broschüre change begleitung für hp dechange-factory
 
change factory: Change Management Begleitung
change factory: Change Management Begleitungchange factory: Change Management Begleitung
change factory: Change Management BegleitungChange Factory
 
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anyninesVorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anyninesanynines GmbH
 
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-Anwender
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-AnwendereCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-Anwender
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-AnwenderMartin Hepp
 
DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?Digicomp Academy AG
 

Destaque (20)

Vorgehensmodell
VorgehensmodellVorgehensmodell
Vorgehensmodell
 
Serena Change- & Release-Management
Serena Change- & Release-ManagementSerena Change- & Release-Management
Serena Change- & Release-Management
 
Change Management - Ansatz von Plaut
Change Management - Ansatz von PlautChange Management - Ansatz von Plaut
Change Management - Ansatz von Plaut
 
Neues Denken in Sales und Marketing - Tag 1
Neues Denken in Sales und Marketing - Tag 1Neues Denken in Sales und Marketing - Tag 1
Neues Denken in Sales und Marketing - Tag 1
 
Change Management für erfolgreiches E-Publishing in Verlagen
Change Management für erfolgreiches E-Publishing in VerlagenChange Management für erfolgreiches E-Publishing in Verlagen
Change Management für erfolgreiches E-Publishing in Verlagen
 
Concepts methodes
Concepts methodesConcepts methodes
Concepts methodes
 
BLM Webradiomonitor 2012, Goldmedia
BLM Webradiomonitor 2012, GoldmediaBLM Webradiomonitor 2012, Goldmedia
BLM Webradiomonitor 2012, Goldmedia
 
23 organisationsentwicklung 2015
23 organisationsentwicklung 201523 organisationsentwicklung 2015
23 organisationsentwicklung 2015
 
Digicomp change management_2 0_m_schweizer_v3_150317
Digicomp change management_2 0_m_schweizer_v3_150317Digicomp change management_2 0_m_schweizer_v3_150317
Digicomp change management_2 0_m_schweizer_v3_150317
 
The future of IT
The future of ITThe future of IT
The future of IT
 
20160813 getting real – impact of ux
20160813 getting real – impact of ux20160813 getting real – impact of ux
20160813 getting real – impact of ux
 
Creating the Agile IT Organisation
Creating the Agile IT OrganisationCreating the Agile IT Organisation
Creating the Agile IT Organisation
 
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....
BPM-Club: Vortrag "Prozessmanagement bei der Hamburt Port Authority" - 11.05....
 
141212 broschüre change begleitung für hp de
141212 broschüre change begleitung für hp de141212 broschüre change begleitung für hp de
141212 broschüre change begleitung für hp de
 
Referat: Change Management 2.0
Referat: Change Management 2.0Referat: Change Management 2.0
Referat: Change Management 2.0
 
change factory: Change Management Begleitung
change factory: Change Management Begleitungchange factory: Change Management Begleitung
change factory: Change Management Begleitung
 
Schindler 2500 FR
Schindler 2500 FRSchindler 2500 FR
Schindler 2500 FR
 
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anyninesVorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
 
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-Anwender
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-AnwendereCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-Anwender
eCl@ss im Web: Mehr Kunden und bessere Stammdaten für jeden eCl@ss-Anwender
 
DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?
 

Semelhante a Perforce's Java Platform: Continuous Integration For Real

Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP WorldIdaf_1er
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsXebiaLabs
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3Ahmed Misbah
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsCprime
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...DevConFu
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Mike McGarr
 
Continuous Development: Supporting a Release Model
Continuous Development: Supporting a Release ModelContinuous Development: Supporting a Release Model
Continuous Development: Supporting a Release ModelPerforce
 
Full Stack DevOps - Ready To Go
Full Stack DevOps - Ready To GoFull Stack DevOps - Ready To Go
Full Stack DevOps - Ready To GoKallex
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityGeoff Harcourt
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 

Semelhante a Perforce's Java Platform: Continuous Integration For Real (20)

Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOps
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Devops
DevopsDevops
Devops
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
Kku2011
Kku2011Kku2011
Kku2011
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
AvenDATA and Devops
AvenDATA and DevopsAvenDATA and Devops
AvenDATA and Devops
 
Continuous Development: Supporting a Release Model
Continuous Development: Supporting a Release ModelContinuous Development: Supporting a Release Model
Continuous Development: Supporting a Release Model
 
Full Stack DevOps - Ready To Go
Full Stack DevOps - Ready To GoFull Stack DevOps - Ready To Go
Full Stack DevOps - Ready To Go
 
Continuous feature-development
Continuous feature-developmentContinuous feature-development
Continuous feature-development
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 

Mais de Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

Mais de Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Último

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.pdfUK Journal
 
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 businesspanagenda
 
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, ...apidays
 
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...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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 WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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...Martijn de Jong
 
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, Adobeapidays
 
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.pdfsudhanshuwaghmare1
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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 CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

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
 
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
 
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, ...
 
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...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Perforce's Java Platform: Continuous Integration For Real

  • 1. Continuous Integration For Real: The Perforce Java Platform Hamish Reid Perforce Software Inc.
  • 2. OVERVIEW •  What do we mean by… •  Agile? •  Continuous Integration? •  Product line highlights: •  P4Eclipse + Mylin + MergeQuest •  P4Java •  P4Ant •  P4Maven •  (Hudson Perforce Plugin) •  (P4Java, P4D) •  The Perforce Java Team CI Workflow
  • 3. WHAT DO WE MEAN BY “AGILE”? •  Adaptive processes and workflows: •  Feedback- and reality-driven •  Flexible goals •  Continuous processes and workflows: •  No surprises! •  Small increments in planning •  Small increments in delivery •  Small increments in effort •  There’s always some version of the final product •  Examples: •  Scrum, XP, Kanban
  • 4. WHAT DOES “CONTINUOUS INTEGRATION” MEAN? •  The heart of agile processes… (…but not just agile processes). •  Martin Fowler’s essentials: •  Integration is a non-event. •  Any individual developer's work is only a few hours away from a shared project state. •  Individual work can be integrated back into that state in minutes. •  Any integration errors are found rapidly and can be fixed rapidly. •  Trades up-front workflow and infrastructure effort for integration simplicity. •  Not for every product or workflow.
  • 5. CONTINUOUS INTEGRATION ELEMENTS (1) •  Martin Fowler: •  Configuration management •  Build and test automation •  Self-testing •  Frequent commits •  Build and test on commit •  Fast build / test cycles •  Test in production environment clone •  Easy to get latest build artifacts •  Easy to get latest status •  Automated deployment
  • 6. CONTINUOUS INTEGRATION ELEMENTS (2) •  Additionally, from our own experience: •  Integration into issues tracker system •  Easy / safe / cheap branching… …and integrate / merge / resolve cycle •  Low burden for developers: •  Integration into IDE’s and other common tools •  Visualization •  “Culturally appropriate”
  • 7. OUR JAVA TEAM WORKFLOW •  We “eat our own dog food”… …but we also “eat our customers’ dog food” •  Heavy emphasis on continuous integration •  (Very) test-driven development process •  Jobs-driven process •  Branch-centric process: •  Dev / shared (team) / main / release •  Two modes: •  Eclipse-centric development and dev testing •  Hudson-centric automation for shared branches •  Open Source / off-the-shelf solutions: •  Eclipse, Mylin, Junit, Maven, Ant, Hudson, Cruise control
  • 8. KEY ELEMENTS IN OUR CI WORKFLOW •  Eclipse + P4Eclipse •  P4Eclipse + MergeQuest + Mylin + more… •  Hudson + Perforce plugin •  Maven + P4Maven •  Ant + P4Ant •  P4Java •  (P4D)
  • 9. ECLIPSE – THE DEVELOPER'S COMMAND CENTER
  • 10. ECLIPSE + P4ECLIPSE •  All code work done in Eclipse •  P4Eclipse supplies the Perforce functionality: •  Import as project •  Add / edit / delete files •  Submit / changelist management •  Refactoring •  P4Grep, diffs, resolves, branches, merges •  All dev testing done using Junit: •  Suite-based •  Right-click from Eclipse •  Mylin – the task master •  MergeQuest, branch graph, timelapse… •  Mavenized development where needed
  • 11. HUDSON + PERFORCE •  Hudson + P4 extensions central to Perforce Java team workflow: •  Used to setup builds and tests •  Used to store results and raw report data back to SCM •  Triggered on successful merges and codeline changes •  Uses existing third-party Open Source plugin •  Perforce will help develop and maintain •  Currently p4 command line based •  Typically configured through Hudson control panel •  Works with Jenkins, too, of course…
  • 12. MAVEN + P4MAVEN •  Maven used extensively: •  Distribute shared team builds •  Cache external dependencies •  Off-the-shelf build lifecycle support •  Tie-ins to Eclipse •  Often run from Hudson •  P4Maven: •  Perforce-developed and supported •  P4Java-based •  Released 11.1 •  Full Maven “scm” functionality •  MOJO-based extensions for jobs, etc. •  Non-core plugin
  • 13. ANT + P4ANT •  P4Java-based •  P4Ant targets: •  The usual suspects, plus… •  …things like shelve / unshelve, fix, job-related tasks, etc. •  Perforce usage: •  Test setups •  Builds •  Distributions •  Example: <taskdef resource="com/perforce/ant/tasks/P4Tasks.properties" /> … <target name="p4tasktest" description="Perforce task test"> <p4jsubmit port="eng-p4java-vm:20101" user="p4jtestuser" passwd="p4jtestuser" client="p4TestUserWS" changelist="3391" /> </target>
  • 14. P4JAVA •  Makes all-Java implementations possible •  Native protocol implementation •  Clear object model •  Underpins: •  Nearly all our Java-related CI platform •  Perforce Web Services Platform (P4WSP)
  • 15. LOOKING BACK… •  Tools integration (“it’s the tools, stupid!”): •  P4Eclipse + Mylin •  P4Maven, P4Ant, Hudson Plugin •  Visualization: •  MergeQuest, P4Eclipse, Timelapse, Branch Graph •  Hudson + P4Hudson •  Immediacy: •  P4Eclipse, Hudson •  Flexibility: •  …all that and more.
  • 16. SUMMARY •  The Perforce Java product line now forms a platform •  Key components: •  P4Eclipse •  P4Maven •  P4Ant •  P4Hudson •  (P4D, P4Java) •  It makes agile continuous integration so easy… …that even the Perforce Java team can do it.