CONTINUOUS INTEGRATION 
Do it yourself 
august 2014 
Seite 1 von 10 © 2014 INNOMOS GmbH www.innomos.de
CONTINUOUS WHAT? 
DETERMINATION 
Martin Fowler 
Software engineer, champion of Continuous integration 
“Continuous Integration (CI) is a software development 
practice where members of a team integrate their work 
frequently, usually each person integrates at least daily - 
leading to multiple integrations per day. Each integration is 
verified by an automated build (including test) to detect 
integration errors as quickly as possible. Many teams find that 
this approach leads to significantly reduced integration 
problems and allows a team to develop cohesive software 
more rapidly.”
CONTINUOUS WHAT? 
DETERMINATION 
“CI is about reducing the time between 
creating a failure and being able to do 
something about it”
ARCHITECTURE 
SOFTWARE COMPONENTS 
JIRA 
bugtracker 
Bamboo 
continuous 
integration 
GitLab 
source code 
OwnCloud 
file storage 
Confluence 
docs 
Autot 
ests 
UI, unit, 
load
ARCHITECTURE 
SOFTWARE COMPONENTS 
JIRA 
bugtracker 
Bamboo 
continuous 
integration 
GitLab 
source code 
OwnCloud 
file storage 
Confluence 
docs 
Autot 
ests 
UI, unit, 
load 
Submit code 
Developer 
Pick task 
Fetch code 
Build 
Test 
Deliver
WHAT WAS BEFORE 
LIFE BEFORE CONTINUOUS INTEGRATION 
- manual QA 
- no unit-testing 
- integration hell 
- resistance to agile practice in INNOMOS 
- 2-3 weeks deployment times 
- manual build
WHAT'S NOW 
LIFE AFTER CONTINUOUS INTEGRATION 
- automated tests, minimized time for regression 
- unit-tests are running after the build 
- integration with every commit 
- CI is Agile 
- potentially shippable product everyday 
- fully automated build
CI BENEFITS 
...FOR PROJECT MANAGER 
- automates the build 
- reduced risks, makes deployment more predictable 
- immediate feedback when there is a problem 
- everyone can see what’s happening in real time 
- avoid last minute chaos at release dates 
- constant availability of a current build 
- potentially shippable product at frequent intervals 
- easy-to find builds history 
- build are associated with tasks
CI BENEFITS 
...FOR PROJECT MANAGER
CI BENEFITS 
...FOR PROJECT MANAGER
CI BENEFITS 
...FOR DEVELOPER 
- everyone commits to the mainline everyday 
- every commit to the mainline results a build 
- code stability 
- minimize integration risk 
- unit tests had to pass for deploy 
- continuous detection and fixing of integration problems 
- integration happens before it gets hairy 
- automate the deployment
CI BENEFITS 
...FOR QA 
- easier defect diagnostics 
- test code as often as needed for early bug detections 
- great way to improve quality of the software 
- make build self-testing 
- qa teams don't wait for new features deployment 
- regression tests can be automated up to 100%
CI DISADVANTAGES 
HARDWARE/SOFTWARE/TEST SUITE 
- initial setup time required, as well as the training 
to get acquainted with CI server - DONE 
- well-developed test-suite required – IN PROGRESS 
- requires many resources for CI server - UNRESOLVED
WHAT IS BAMBOO 
CI SERVER SOFTWARE 
About 
- 6 years old 
- 100+ plugins 
- Atlassian leading product 
- easy to install and use 
Functions 
- run builds and tests 
- connects issues, commits, test results, and deploys 
- configurable build plans and tasks 
- easy and better CI 
- first-class deployment 
- suitable for any language/technology
CI IN ACTION 
IOS/Android/RoR demos 
Demo iOS 
- latest build on Marco Polo 
- links to issues 
- commits 
- UI tests 
Demo Android 
- unit tests 
Demo Backend 
- RoR tests
CONTINUOUS WHAT? 
DETERMINATION 
“Continuous integration doesn’t get rid 
of bugs, but it does make them 
dramatically easier to find and remove”
Seite 17 von 10 © 2014 INNOMOS GmbH www.innomos.de 
INNOMOS UKRAINE 
Kiev 
Grinchenko str, 4b, 2nd floor 
www.innomos.com

Continuous integration

  • 1.
    CONTINUOUS INTEGRATION Doit yourself august 2014 Seite 1 von 10 © 2014 INNOMOS GmbH www.innomos.de
  • 2.
    CONTINUOUS WHAT? DETERMINATION Martin Fowler Software engineer, champion of Continuous integration “Continuous Integration (CI) is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.”
  • 3.
    CONTINUOUS WHAT? DETERMINATION “CI is about reducing the time between creating a failure and being able to do something about it”
  • 4.
    ARCHITECTURE SOFTWARE COMPONENTS JIRA bugtracker Bamboo continuous integration GitLab source code OwnCloud file storage Confluence docs Autot ests UI, unit, load
  • 5.
    ARCHITECTURE SOFTWARE COMPONENTS JIRA bugtracker Bamboo continuous integration GitLab source code OwnCloud file storage Confluence docs Autot ests UI, unit, load Submit code Developer Pick task Fetch code Build Test Deliver
  • 6.
    WHAT WAS BEFORE LIFE BEFORE CONTINUOUS INTEGRATION - manual QA - no unit-testing - integration hell - resistance to agile practice in INNOMOS - 2-3 weeks deployment times - manual build
  • 7.
    WHAT'S NOW LIFEAFTER CONTINUOUS INTEGRATION - automated tests, minimized time for regression - unit-tests are running after the build - integration with every commit - CI is Agile - potentially shippable product everyday - fully automated build
  • 8.
    CI BENEFITS ...FORPROJECT MANAGER - automates the build - reduced risks, makes deployment more predictable - immediate feedback when there is a problem - everyone can see what’s happening in real time - avoid last minute chaos at release dates - constant availability of a current build - potentially shippable product at frequent intervals - easy-to find builds history - build are associated with tasks
  • 9.
    CI BENEFITS ...FORPROJECT MANAGER
  • 10.
    CI BENEFITS ...FORPROJECT MANAGER
  • 11.
    CI BENEFITS ...FORDEVELOPER - everyone commits to the mainline everyday - every commit to the mainline results a build - code stability - minimize integration risk - unit tests had to pass for deploy - continuous detection and fixing of integration problems - integration happens before it gets hairy - automate the deployment
  • 12.
    CI BENEFITS ...FORQA - easier defect diagnostics - test code as often as needed for early bug detections - great way to improve quality of the software - make build self-testing - qa teams don't wait for new features deployment - regression tests can be automated up to 100%
  • 13.
    CI DISADVANTAGES HARDWARE/SOFTWARE/TESTSUITE - initial setup time required, as well as the training to get acquainted with CI server - DONE - well-developed test-suite required – IN PROGRESS - requires many resources for CI server - UNRESOLVED
  • 14.
    WHAT IS BAMBOO CI SERVER SOFTWARE About - 6 years old - 100+ plugins - Atlassian leading product - easy to install and use Functions - run builds and tests - connects issues, commits, test results, and deploys - configurable build plans and tasks - easy and better CI - first-class deployment - suitable for any language/technology
  • 15.
    CI IN ACTION IOS/Android/RoR demos Demo iOS - latest build on Marco Polo - links to issues - commits - UI tests Demo Android - unit tests Demo Backend - RoR tests
  • 16.
    CONTINUOUS WHAT? DETERMINATION “Continuous integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove”
  • 17.
    Seite 17 von10 © 2014 INNOMOS GmbH www.innomos.de INNOMOS UKRAINE Kiev Grinchenko str, 4b, 2nd floor www.innomos.com