Continuous Integration:
         Blueprint, Toolbox, Master Craft


    DC .NET Users Group (@DCDNUG)                                                                                                                           Stephen D. Ritchie
    February 2013 Meeting
                                                                                                                                                               @RuthlessHelp
                                                                                                                                                                     Feb 19, 2013



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

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

• Code Samples:
  http://github.com/ruthlesshelp


Stephen D. Ritchie   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                  3
What Went Wrong?


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

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




Stephen D. Ritchie   7
CI Server


                      Source                    CI
                       Code                   Server



            Scott’s                 Susan’s
                        You
           Computer                Computer


Stephen D. Ritchie             8
CI Server


Triggered by SCM
                     and




Stephen D. Ritchie         9
CI – Per Commit Steps


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




Stephen D. Ritchie   11
CI Server – Jenkins



                          http://jenkins-ci.org/


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

                     http://cruisecontrol.sourceforge.net/


                     http://www.cruisecontrolnet.org/

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



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



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




Stephen D. Ritchie   16
The Master Craft


                      Unit Testing
                              Plus

                     Code Coverage

Stephen D. Ritchie       17
The Master Craft


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


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


                     Reporting
                            And

                     Visibility

Stephen D. Ritchie     20
The Master Craft


                     Packaging
                             And

                     Deployment

Stephen D. Ritchie      21
Stephen’s Contact Info

• Email: stephen.ritchie@excella.com

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




Stephen D. Ritchie   22

Continuous Integration: Blueprint, Toolbox, Master Craft

  • 1.
    Continuous Integration: Blueprint, Toolbox, Master Craft DC .NET Users Group (@DCDNUG) Stephen D. Ritchie February 2013 Meeting @RuthlessHelp Feb 19, 2013 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 • Slides: http://www.slideshare.net/ruthlesshelp • Code Samples: http://github.com/ruthlesshelp Stephen D. Ritchie 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 3
  • 4.
    What Went Wrong? Conflicts Missing Files Breaking Changes Stephen D. Ritchie 4
  • 5.
    How do you find integration issues? Stephen D. Ritchie 5
  • 6.
    Manual Integration Build Run Some Unit Tests Perform Static Analysis Clean + Rebuild All Stephen D. Ritchie 6
  • 7.
  • 8.
    CI Server Source CI Code Server Scott’s Susan’s You Computer Computer Stephen D. Ritchie 8
  • 9.
    CI Server Triggered bySCM and Stephen D. Ritchie 9
  • 10.
    CI – PerCommit Steps 1. Clean + Rebuild All 2. Run All Unit Tests 3. Analysis Static Code Analysis Coding Standards Stephen D. Ritchie 10
  • 11.
  • 12.
    CI Server –Jenkins http://jenkins-ci.org/ Free Open Source Stephen D. Ritchie 12
  • 13.
    CI Server –Cruise Control http://cruisecontrol.sourceforge.net/ http://www.cruisecontrolnet.org/ Free Open Source Stephen D. Ritchie 13
  • 14.
    CI Server –TeamCity http://www.jetbrains.com/teamcity/ Commercial Easy to Use Stephen D. Ritchie 14
  • 15.
    Perhaps an example would be helpful Stephen D. Ritchie 15
  • 16.
    Continuous Integration MasterCraft Stephen D. Ritchie 16
  • 17.
    The Master Craft Unit Testing Plus Code Coverage Stephen D. Ritchie 17
  • 18.
    The Master Craft System Testing Integration Testing Acceptance Testing Stephen D. Ritchie 18
  • 19.
    The Master Craft Code Quality Visualizations Analysis Checks Metrics Detections Stephen D. Ritchie 19
  • 20.
    The Master Craft Reporting And Visibility Stephen D. Ritchie 20
  • 21.
    The Master Craft Packaging And Deployment Stephen D. Ritchie 21
  • 22.
    Stephen’s Contact Info •Email: stephen.ritchie@excella.com • LinkedIn: http://www.linkedin.com/in/sritchie Stephen D. Ritchie 22