Continuous Integration:
         Blueprint, Toolbox, Master Craft


                                                                                                                                                            Stephen D. Ritchie
         #DCAEC12                                                                                                                                              @RuthlessHelp
                                                                                                                                                                      Dec 7, 2012



Stephen D. Ritchie – Managing Consultant – Excella Consulting, Inc., 2300 Wilson Blvd, Suite 630, Arlington, VA 22201 – 703.840.8600 – http://excella.com
Live Tweet, Slides and Examples

• Twitter: @RuthlessHelp
           #DCAEC12

• Slides:
  http://www.slideshare.net/ruthlesshelp

• Code Samples:
  http://github.com/ruthlesshelp
Stephen D. Ritchie   #DCAEC12   2
The Problem
1      Scott makes changes
2      Susan makes changes
3      You can’t build
                                           Source
                                            Code

                                1                  3      2




                             Scott’s                    Susan’s
                                             You
                            Computer                   Computer


Stephen D. Ritchie   #DCAEC12          3
What Went Wrong?


         Conflicts
                           Missing Files
         Breaking Changes
Stephen D. Ritchie   #DCAEC12   4
How do you
                         find
                     integration
                       issues?
Stephen D. Ritchie    #DCAEC12   5
Manual Integration

       Build
       Run Some Unit Tests
       Perform Static Analysis
       Clean + Rebuild All
Stephen D. Ritchie   #DCAEC12   6
Continuous Integration Blueprint




Stephen D. Ritchie   #DCAEC12   7
CI Server


                                Source                    CI
                                 Code                   Server



            Scott’s                           Susan’s
                                  You
           Computer                          Computer


Stephen D. Ritchie   #DCAEC12            8
CI Server


Triggered by SCM
                                and




Stephen D. Ritchie   #DCAEC12         9
CI – Per Commit Steps


       1. Clean + Rebuild All
       2. Run All Unit Tests
       3. Analysis
                     Static Code Analysis
                     Coding Standards
Stephen D. Ritchie   #DCAEC12   10
Continuous Integration Toolbox




Stephen D. Ritchie   #DCAEC12   11
CI Server – Jenkins



                                     http://jenkins-ci.org/


       Free
       Open Source
Stephen D. Ritchie   #DCAEC12   12
CI Server – Cruise Control

                                http://cruisecontrol.sourceforge.net/


                                http://www.cruisecontrolnet.org/

       Free
       Open Source
Stephen D. Ritchie   #DCAEC12           13
CI Server – TeamCity



                                http://www.jetbrains.com/teamcity/



       Commercial
       Easy to Use
Stephen D. Ritchie   #DCAEC12          14
Perhaps an
    example would
      be helpful
Stephen D. Ritchie   #DCAEC12   15
Continuous Integration Master Craft




Stephen D. Ritchie   #DCAEC12   16
The Master Craft


                                Unit Testing
                                        Plus

                          Code Coverage

Stephen D. Ritchie   #DCAEC12      17
The Master Craft


                                 System Testing
                     Integration Testing
                     Acceptance Testing
Stephen D. Ritchie    #DCAEC12      18
The Master Craft


                                Code Quality
Visualizations                    Analysis
Checks
Metrics
Detections
Stephen D. Ritchie   #DCAEC12      19
The Master Craft


                                Reporting
                                       And

                                Visibility

Stephen D. Ritchie   #DCAEC12     20
The Master Craft


                                Packaging
                                        And

                                Deployment

Stephen D. Ritchie   #DCAEC12      21
Stephen’s Contact Info

• Email: stephen.ritchie@excella.com

• LinkedIn:
     http://www.linkedin.com/in/sritchie




Stephen D. Ritchie   #DCAEC12   22

Continuous Integration: Toolbox, Blueprint, Master Craft

  • 1.
    Continuous Integration: Blueprint, Toolbox, Master Craft Stephen D. Ritchie #DCAEC12 @RuthlessHelp Dec 7, 2012 Stephen D. Ritchie – Managing Consultant – Excella Consulting, Inc., 2300 Wilson Blvd, Suite 630, Arlington, VA 22201 – 703.840.8600 – http://excella.com
  • 2.
    Live Tweet, Slidesand Examples • Twitter: @RuthlessHelp #DCAEC12 • Slides: http://www.slideshare.net/ruthlesshelp • Code Samples: http://github.com/ruthlesshelp Stephen D. Ritchie #DCAEC12 2
  • 3.
    The Problem 1 Scott makes changes 2 Susan makes changes 3 You can’t build Source Code 1 3 2 Scott’s Susan’s You Computer Computer Stephen D. Ritchie #DCAEC12 3
  • 4.
    What Went Wrong? Conflicts Missing Files Breaking Changes Stephen D. Ritchie #DCAEC12 4
  • 5.
    How do you find integration issues? Stephen D. Ritchie #DCAEC12 5
  • 6.
    Manual Integration Build Run Some Unit Tests Perform Static Analysis Clean + Rebuild All Stephen D. Ritchie #DCAEC12 6
  • 7.
  • 8.
    CI Server Source CI Code Server Scott’s Susan’s You Computer Computer Stephen D. Ritchie #DCAEC12 8
  • 9.
    CI Server Triggered bySCM and Stephen D. Ritchie #DCAEC12 9
  • 10.
    CI – PerCommit Steps 1. Clean + Rebuild All 2. Run All Unit Tests 3. Analysis Static Code Analysis Coding Standards Stephen D. Ritchie #DCAEC12 10
  • 11.
  • 12.
    CI Server –Jenkins http://jenkins-ci.org/ Free Open Source Stephen D. Ritchie #DCAEC12 12
  • 13.
    CI Server –Cruise Control http://cruisecontrol.sourceforge.net/ http://www.cruisecontrolnet.org/ Free Open Source Stephen D. Ritchie #DCAEC12 13
  • 14.
    CI Server –TeamCity http://www.jetbrains.com/teamcity/ Commercial Easy to Use Stephen D. Ritchie #DCAEC12 14
  • 15.
    Perhaps an example would be helpful Stephen D. Ritchie #DCAEC12 15
  • 16.
    Continuous Integration MasterCraft Stephen D. Ritchie #DCAEC12 16
  • 17.
    The Master Craft Unit Testing Plus Code Coverage Stephen D. Ritchie #DCAEC12 17
  • 18.
    The Master Craft System Testing Integration Testing Acceptance Testing Stephen D. Ritchie #DCAEC12 18
  • 19.
    The Master Craft Code Quality Visualizations Analysis Checks Metrics Detections Stephen D. Ritchie #DCAEC12 19
  • 20.
    The Master Craft Reporting And Visibility Stephen D. Ritchie #DCAEC12 20
  • 21.
    The Master Craft Packaging And Deployment Stephen D. Ritchie #DCAEC12 21
  • 22.
    Stephen’s Contact Info •Email: stephen.ritchie@excella.com • LinkedIn: http://www.linkedin.com/in/sritchie Stephen D. Ritchie #DCAEC12 22