CONTINUOUS	
  INTEGRATION	
  
Fabricio Leotti | Rodrigo Russo
Princípios	
  básicos	
  
Princípios	
  básicos	
  
•  Controle	
  de	
  versão	
  
Princípios	
  básicos	
  
•  Controle	
  de	
  versão	
  
•  Prepare	
  para	
  a	
  automação	
  
Princípios	
  básicos	
  
•  Controle	
  de	
  versão	
  
•  Prepare	
  para	
  a	
  automação	
  
•  Faça,	
  meça,	
  corrija	
  
Branching	
  strategy	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  Master	
  branch	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
Branching	
  strategy	
  
•  HoKix	
  
CI/CD	
  Pipeline	
  
CI/CD	
  Pipeline	
  
A Basic Deployment Pipeline
Figure 5.4 shows a typical deployment pipeline and captures the essence of the
approach. Of course, a real pipeline will reflect your project’s actual process for
delivering software.
Artifact repository
Source
code
Commit stage
Compile
Commit tests
Assemble
Code analysis
reports
binaries
metadata
Acceptance stage
Configure environment
Deploy binaries
Smoke test
Acceptance tests
Capacity stage
Configure environment
Deploy binaries
Smoke test
Run capacity tests
UAT
Configure environment
Deploy binaries
Smoke test
Env &
app
config
reports
metadatabinaries
Production
Configure environment
Deploy binaries
Smoke test
Env &
app
config
binaries
reports
metadata
Operations
perform
push-button
releases
Testers
Self-service
deploymentsDevelopers
See code metrics
and test failures
Version control
Figure 5.4 Basic deployment pipeline
Jenkins	
  
Pipeline	
  
Code	
  pull	
   Build	
  &	
  Unit	
  Tes1ng	
  
Build	
  &	
  Promote	
  
Package	
  
Sta1c	
  Analysis	
  
Commit	
  Stage	
  
<Environment>	
  
Deployment	
  
<Environment>	
  
Smoke	
  Test	
  
<Environment>	
  
Integra1on	
  Test	
  
<Environment>	
  
Acceptance	
  Test	
  
Acceptance	
  Stage	
  
<Environment>	
  
Load	
  Test	
  
<Environment>	
  
Performance	
  Test	
  
Capacity	
  Stage	
  
Deploy	
  Binaries	
  
Configure	
  Environment	
  
Produc1on	
  
Smoke	
  Test	
  
Jenkins	
  Pipeline	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Jenkins	
  Pipeline	
  
•  Jenkins	
  jobs	
  
Pollmachine	
  Pipeline	
  

QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration