ciitdevcon

Upload: khalidihajar

Post on 08-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 ciitdevcon

    1/44

    Continues Integration

    Johan Aludden

    Twitter: johanaluddenMail: [email protected]

    Blog: johanaludden.com/weblog

    mailto:[email protected]:[email protected]:[email protected]
  • 8/6/2019 ciitdevcon

    2/44

    What is Continues Integration?

    Compile continuously Test continuously Prepare installation continuously

    Measure quality continuously Create documentation continuously

    2

  • 8/6/2019 ciitdevcon

    3/44

    Components

    Developers Version Control Repository CI server Build script Feedback Integration Build Machine

    3

  • 8/6/2019 ciitdevcon

    4/44

    Developers

    Makes Changes to code Runs a private Build Commits changes

    4

  • 8/6/2019 ciitdevcon

    5/44

    Version Control Repository

    Central point of truth Good Practice History CVS, SVN, Perforce, Git

    5

  • 8/6/2019 ciitdevcon

    6/44

    CI server

    Checks for changes Retrieves changes Runs build script(s) Dashboard

    6

  • 8/6/2019 ciitdevcon

    7/44

    Build Script

    Automated Complete Launched from Command line

    7

  • 8/6/2019 ciitdevcon

    8/44

    Feedback

    Email Instant messaging SMS RSS Sounds

    Monitor

    8

  • 8/6/2019 ciitdevcon

    9/44

    Integration Build Machine

    Dedicated The reference

    9

  • 8/6/2019 ciitdevcon

    10/44

    Benets

    Risk reduction Less repetition Generate Deployable Software

    Increase Visibility More Condence

    10

  • 8/6/2019 ciitdevcon

    11/44

  • 8/6/2019 ciitdevcon

    12/44

    First steps

    Centralized repository Compile code Package binaries

    Add testing Add inspections

    12

  • 8/6/2019 ciitdevcon

    13/44

    Common Problems

    Long build time Frequently failed builds

    To much information Many target platforms

    13

  • 8/6/2019 ciitdevcon

    14/44

    Long build time

    Make it faster Split and run in Parallell

    Split and run in Sequence

    14

  • 8/6/2019 ciitdevcon

    15/44

  • 8/6/2019 ciitdevcon

    16/44

    To much information

    Is all information necessary What information can be removed

    Multiple source of information Pull not push Visualize information

    16

  • 8/6/2019 ciitdevcon

    17/44

  • 8/6/2019 ciitdevcon

    18/44

    Pipelines

    Jobs Runs in Parallell

    Stages Runs in sequence contains 1 or more jobs

    18

  • 8/6/2019 ciitdevcon

    19/44

    PipelinePipeline

    19

  • 8/6/2019 ciitdevcon

    20/44

    PipelinePipeline

    19

    Stage

  • 8/6/2019 ciitdevcon

    21/44

    PipelinePipeline

    19

    StageStage

    JobJob

    JobJob

  • 8/6/2019 ciitdevcon

    22/44

    PipelinePipeline

    19

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

    JobJob

  • 8/6/2019 ciitdevcon

    23/44

    PipelinePipeline

    19

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    24/44

    PipelinePipeline

    19

    StageStage

    JobJob

    Job

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    25/44

    PipelinePipeline

    19

    StageStage

    Job

    Job

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    26/44

    PipelinePipeline

    19

    Stage

    Job

    Job

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    27/44

    PipelinePipeline

    19

    Stage

    Job

    Job

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    28/44

  • 8/6/2019 ciitdevcon

    29/44

  • 8/6/2019 ciitdevcon

    30/44

    PipelinePipeline

    19

    Stage

    Job

    Job

    Stage

    Job

    Job

    StageStage

    JobJob

  • 8/6/2019 ciitdevcon

    31/44

    PipelinePipeline

    19

    Stage

    Job

    Job

    Stage

    Job

    Job

    Stage

    Job

  • 8/6/2019 ciitdevcon

    32/44

    Pipeline

    19

    Stage

    Job

    Job

    Stage

    Job

    Job

    Stage

    Job

  • 8/6/2019 ciitdevcon

    33/44

    PipelinePipeline

    20

    StageStage

    JobJob

    JobJob

    StageStage

    JobJob

    JobJob

    Stage

    Job

  • 8/6/2019 ciitdevcon

    34/44

    PipelinePipeline

    20

    StageStage

    JobJob

    Job

    StageStage

    JobJob

    JobJob

    Stage

    Job

  • 8/6/2019 ciitdevcon

    35/44

    PipelinePipeline

    20

    StageStage

    Job

    Job

    StageStage

    JobJob

    JobJob

    Stage

    Job

  • 8/6/2019 ciitdevcon

    36/44

    PipelinePipeline

    20

    Stage

    Job

    Job

    StageStage

    JobJob

    JobJob

    Stage

    Job

  • 8/6/2019 ciitdevcon

    37/44

    PipelinePipeline

    20

    Stage

    Job

    Job

    StageStage

    JobJob

    JobJob

    Stage

    Job

  • 8/6/2019 ciitdevcon

    38/44

    PipelinePipeline

    20

    Stage

    Job

    Job

    StageStage

    JobJob

    Job

    Stage

    Job

  • 8/6/2019 ciitdevcon

    39/44

    PipelinePipeline

    20

    Stage

    Job

    Job

    Stage

    Job

    Job

    Stage

    Job

  • 8/6/2019 ciitdevcon

    40/44

    PipelinePipeline

    20

    Stage

    Job

    Job

    Stage

    Job

    Job

  • 8/6/2019 ciitdevcon

    41/44

    Pipeline

    20

    Stage

    Job

    Job

    Stage

    Job

    Job

  • 8/6/2019 ciitdevcon

    42/44

    CI servers

    CruiseControl Hudson Cruise Bamboo

    21

  • 8/6/2019 ciitdevcon

    43/44

    Links Martin Fowler (http://martinfowler.com/articles/continuousIntegration.html) Book (http://www.amazon.com/Continuous-Integration-Improving-Software-

    Reducing/dp/0321336380)

    CruiseControl (http://cruisecontrol.sourceforge.net/) Hudson (https://hudson.dev.java.net/) WikiPedia (http://en.wikipedia.org/wiki/Continuous_integration/)

    22

    http://en.wikipedia.org/wiki/Continuous_integration/http://en.wikipedia.org/wiki/Continuous_integration/https://hudson.dev.java.net/https://hudson.dev.java.net/http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380http://martinfowler.com/articles/continuousIntegration.htmlhttp://martinfowler.com/articles/continuousIntegration.html
  • 8/6/2019 ciitdevcon

    44/44

    Questions?