SlideShare a Scribd company logo
Continuous Integration 
Barış İNANÇ 
ARDIC AR-GE 
Release Engineer
Who am I? 
• Release Engineer in ARDIC INC. 
• Maintaining build operations for 3 years 
• Trying to automate everything 
2
Agenda 
• Catastrophic Failure Step by Step 
• Continuous Integration 
• Why it is important? 
• What is needed? 
• Build 
▫ What 
▫ When 
▫ How 
• My Toolbox and Workflow 
• 7 Step for Success 
3
Catastrophic Failure Step by Step 
• Crowded Team 
• Multi module project 
• No revision management system / wrong usage 
of revision management system 
• Manual testing 
• Compile only on finish 
• Binary deployment from developer computer 
• … 
4
Continuous Integration 
• Software engineering practice, where project is 
builded frequently 
• Emerged as Extreme Programming technique 
• 2000, Continuous Integration, Martin Fowler 
• Became Agile Process standard 
5
Why it is important? (1) 
• Fixing bugs late can be costly 
6
Why it is important? (2) 
• To Improve Team Collaboration 
▫ “Changes are conflicting how to merge now?” 
▫ “When did this code changed/removed/added” 
▫ “It was working two days ago” 
7
Why it is important? (3) 
• To Improve Code Quality 
(Before production/catastrophic failure) 
▫ “Same code over and over why not make a 
function” 
▫ Why did you write this code: 
… 
if(foo==true) 
return true 
else 
return false 
… 
return foo 
8
Why it is important? (4) 
• To know Project history/future 
▫ What was in version 1.2.129? 
▫ Which tests are failing? 
9
Why it is important? (5) 
• Always ready for deployment 
▫ “It works on my computer” 
▫ “Customer is coming, ready for a demo?” 
10
Fix before not try during flight 
11
What is needed? 
• Revision Management System (GIT/SVN) 
• Dedicated Build Server 
• Open-minded team 
12
Term: Build 
• Learn real meaning of Build 
Build != Compile 
13
Build 
• Compilation 
sucessfully 
• Test Execution 
• Database Integration 
• Code Inspection 
• Automated Deployment 
• Document Generation 
repeatable 
Upgrade/downgrade scripts 
Health check 
Always ready 
Up-to-date 
14
Build When? 
• Full project build regularly (nightly) 
• Build module in every commit 
• Full Build if a module changes dependencies 
15
Build How? 
• Generate building scripts 
• Unattended building 
• Do not use IDE for building 
• Use CI server not developer computer 
• Generate build report for immediate feedback 
• Accessible for team 
16
Jenkins CI 
• Easy to use Continuous Integration tool 
• Building/Testing/Monitoring can be done from 
same application 
• Ready for scaling and parallel building 
• Can integrate with SCM and Code Quality tools 
easily 
17
18
Gerrit Code Review 
• Code Review system for GIT SCM 
• Each patchset can be reviewed before merging to 
release branch 
• Fix before build 
19
20
SonarQube 
• Code Quality tool 
• Automated code quality analysis 
• Over 20 programming languages 
• Coding rules, potential bugs, duplications can be 
anlyzed via this tool 
21
22
Let’s integrate Everything 
23 
Submit changes 
Submit changes it is applicable 
Get changes and build 
Analyze changes 
GIT 
Repo 
Report Output
Let’s integrate Everything 
• Never commit a code to master repository directly 
• Send patchset to review regularly 
• Patchset will be automatically builded and sent to 
analysis to SonarQube 
• SonarQube runs analysis and generated report 
• Build and Analysis reports will be linked to 
patchset in Gerrit Code Review system 
• Merge code to release branch after manual review 
24
Let’s integrate Everything 
• Jenkins CI can build project regularly 
• After compilation completed tests can be run via 
Jenkins 
• Daily sonar analysis can be started during this 
build 
• All reports will be ready for the morning 
25
26 
Source: http://www.slideshare.net/drluckyspin/continuous-integration
Conclusion 
• For 
▫ Better quality Code 
▫ Fast Development Time 
▫ Less cost on money or time 
• Use Continuous Integration techniques 
27
Thank you for listening 
Any Questions… 
28
References 
• http://www.slideshare.net/drluckyspin/continuous-integration 
• https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 
• http://www.sonarqube.org/ 
• https://code.google.com/p/gerrit/ 
• http://martinfowler.com/articles/continuousIntegration.html 
29

More Related Content

PPT
Continuous deployment steve povilaitis
PPTX
Simple ci cd with strider cd
PPTX
Gitlab CI/CD
PPT
Flex and .NET Integration
PPTX
Taking your version control to a next level with TFS and Git
PDF
Devops | CICD Pipeline
PDF
TuleapCon 2019. DevOps in Tuleap
Continuous deployment steve povilaitis
Simple ci cd with strider cd
Gitlab CI/CD
Flex and .NET Integration
Taking your version control to a next level with TFS and Git
Devops | CICD Pipeline
TuleapCon 2019. DevOps in Tuleap

What's hot (20)

PDF
Develop Operation, Operate Development: A journey towards service delivery at...
PPTX
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
PPTX
Continuous Integration as a Way of Life
PPTX
What is Continuous Integration and Continuous Delivery
PDF
Continuous integration (eng)
PPTX
Continuous Integration for Beginners
PPTX
Integration Testing as Validation and Monitoring
PPTX
Continuous integration
PPT
Continuous Integration and Builds
PDF
Dev ops
PDF
TuleapCon 2019. Tuleap explained by the users
PDF
How to win at DevOps (and understand it along the way)
PDF
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
PDF
Introducing GitLab (June 2018)
PPTX
Lets talk about CI CD Pipeline in Agile
PDF
Dimensions CM 14.3 launch webcast (slides)
PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PPTX
Implementing Continuous Integration in .NET for Cheapskates
PDF
Introduction to Enterprise-Release Engineering on the Salesforce Platform
PDF
Introducing GitLab (September 2018)
Develop Operation, Operate Development: A journey towards service delivery at...
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Continuous Integration as a Way of Life
What is Continuous Integration and Continuous Delivery
Continuous integration (eng)
Continuous Integration for Beginners
Integration Testing as Validation and Monitoring
Continuous integration
Continuous Integration and Builds
Dev ops
TuleapCon 2019. Tuleap explained by the users
How to win at DevOps (and understand it along the way)
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Introducing GitLab (June 2018)
Lets talk about CI CD Pipeline in Agile
Dimensions CM 14.3 launch webcast (slides)
Continuous Integration and Continuous Deployment in Enterprise scenario
Implementing Continuous Integration in .NET for Cheapskates
Introduction to Enterprise-Release Engineering on the Salesforce Platform
Introducing GitLab (September 2018)
Ad

Viewers also liked (20)

PDF
Forrester total-economic-impact-of-ca-release-automation
PDF
Business Intelligence Release Management Best Practices
PDF
Leading DevOps Application Release and Deployment - Best Practices for Organi...
PDF
R12 subledgeraccountingandgl
PDF
Migrate from Terma Software Jaws to CA Workload Automation iDash for Enhanced...
PDF
Hands-On Lab: Complement CA Release Automation with a New Continuous Delivery...
PDF
Explore Advanced CA Release Automation Configuration Topics
PDF
Best practices in release management
PDF
Application release-automation-with-zero-touch-deployment
PDF
How Application Release Automation Powers DevOps
PDF
Pre-Con Ed: Become a Power User of CA Release Automation to Get the Most out ...
PDF
Continuous Delivery in the Enterprise - with IBM UrbanCode
PDF
The Evolution of Application Release Automation
PDF
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
PDF
Case Study: How CA’s IT Automated Salesforce Deployments with CA Release Auto...
PDF
6 sigma LTE release management process improvement
PPT
Lean IT Presentation
PDF
Reduce Software Release Cycles by 4-5x with Application Release Automation fo...
PPT
Effective Software Release Management
PPTX
CA Workload Automation Product Roadmap - CA Workload Automation Technology Su...
Forrester total-economic-impact-of-ca-release-automation
Business Intelligence Release Management Best Practices
Leading DevOps Application Release and Deployment - Best Practices for Organi...
R12 subledgeraccountingandgl
Migrate from Terma Software Jaws to CA Workload Automation iDash for Enhanced...
Hands-On Lab: Complement CA Release Automation with a New Continuous Delivery...
Explore Advanced CA Release Automation Configuration Topics
Best practices in release management
Application release-automation-with-zero-touch-deployment
How Application Release Automation Powers DevOps
Pre-Con Ed: Become a Power User of CA Release Automation to Get the Most out ...
Continuous Delivery in the Enterprise - with IBM UrbanCode
The Evolution of Application Release Automation
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
Case Study: How CA’s IT Automated Salesforce Deployments with CA Release Auto...
6 sigma LTE release management process improvement
Lean IT Presentation
Reduce Software Release Cycles by 4-5x with Application Release Automation fo...
Effective Software Release Management
CA Workload Automation Product Roadmap - CA Workload Automation Technology Su...
Ad

Similar to Continuous integrations - Basics (20)

PPTX
Making software development processes to work for you
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
ZIP
Introduction To Continuous Integration
PDF
Continuous Testing
PPT
Continuous Integration
PDF
Introduction to Continuous Integration
PPTX
Continuous Integration: Finding problems soonest
PDF
Delivering Quality Software with Continuous Integration
PDF
Continuous integration
PPTX
Continuos Delivery
PDF
Agile & ALM tools
PPTX
Continuous Integration
PDF
Continuous integration & Continuous Delivery @DeVz
PPTX
Continuous integration
PDF
Continuous Integration
PDF
Putting the pro in programmer
PDF
Continuous integration - stability, reliability and speed in software develop...
PDF
Continuous Integration
PPT
Part 2 improving your software development v1.0
PDF
Continuous Integration Introduction
Making software development processes to work for you
Flight East 2018 Presentation–Continuous Integration––An Overview
Introduction To Continuous Integration
Continuous Testing
Continuous Integration
Introduction to Continuous Integration
Continuous Integration: Finding problems soonest
Delivering Quality Software with Continuous Integration
Continuous integration
Continuos Delivery
Agile & ALM tools
Continuous Integration
Continuous integration & Continuous Delivery @DeVz
Continuous integration
Continuous Integration
Putting the pro in programmer
Continuous integration - stability, reliability and speed in software develop...
Continuous Integration
Part 2 improving your software development v1.0
Continuous Integration Introduction

Recently uploaded (20)

PPTX
Geodesy 1.pptx...............................................
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
Welding lecture in detail for understanding
PDF
composite construction of structures.pdf
PPTX
Construction Project Organization Group 2.pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
PPT on Performance Review to get promotions
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Digital Logic Computer Design lecture notes
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
DOCX
573137875-Attendance-Management-System-original
PDF
Well-logging-methods_new................
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Geodesy 1.pptx...............................................
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Welding lecture in detail for understanding
composite construction of structures.pdf
Construction Project Organization Group 2.pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPT on Performance Review to get promotions
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
CH1 Production IntroductoryConcepts.pptx
Digital Logic Computer Design lecture notes
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
573137875-Attendance-Management-System-original
Well-logging-methods_new................
bas. eng. economics group 4 presentation 1.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Structs to JSON How Go Powers REST APIs.pdf
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx

Continuous integrations - Basics

  • 1. Continuous Integration Barış İNANÇ ARDIC AR-GE Release Engineer
  • 2. Who am I? • Release Engineer in ARDIC INC. • Maintaining build operations for 3 years • Trying to automate everything 2
  • 3. Agenda • Catastrophic Failure Step by Step • Continuous Integration • Why it is important? • What is needed? • Build ▫ What ▫ When ▫ How • My Toolbox and Workflow • 7 Step for Success 3
  • 4. Catastrophic Failure Step by Step • Crowded Team • Multi module project • No revision management system / wrong usage of revision management system • Manual testing • Compile only on finish • Binary deployment from developer computer • … 4
  • 5. Continuous Integration • Software engineering practice, where project is builded frequently • Emerged as Extreme Programming technique • 2000, Continuous Integration, Martin Fowler • Became Agile Process standard 5
  • 6. Why it is important? (1) • Fixing bugs late can be costly 6
  • 7. Why it is important? (2) • To Improve Team Collaboration ▫ “Changes are conflicting how to merge now?” ▫ “When did this code changed/removed/added” ▫ “It was working two days ago” 7
  • 8. Why it is important? (3) • To Improve Code Quality (Before production/catastrophic failure) ▫ “Same code over and over why not make a function” ▫ Why did you write this code: … if(foo==true) return true else return false … return foo 8
  • 9. Why it is important? (4) • To know Project history/future ▫ What was in version 1.2.129? ▫ Which tests are failing? 9
  • 10. Why it is important? (5) • Always ready for deployment ▫ “It works on my computer” ▫ “Customer is coming, ready for a demo?” 10
  • 11. Fix before not try during flight 11
  • 12. What is needed? • Revision Management System (GIT/SVN) • Dedicated Build Server • Open-minded team 12
  • 13. Term: Build • Learn real meaning of Build Build != Compile 13
  • 14. Build • Compilation sucessfully • Test Execution • Database Integration • Code Inspection • Automated Deployment • Document Generation repeatable Upgrade/downgrade scripts Health check Always ready Up-to-date 14
  • 15. Build When? • Full project build regularly (nightly) • Build module in every commit • Full Build if a module changes dependencies 15
  • 16. Build How? • Generate building scripts • Unattended building • Do not use IDE for building • Use CI server not developer computer • Generate build report for immediate feedback • Accessible for team 16
  • 17. Jenkins CI • Easy to use Continuous Integration tool • Building/Testing/Monitoring can be done from same application • Ready for scaling and parallel building • Can integrate with SCM and Code Quality tools easily 17
  • 18. 18
  • 19. Gerrit Code Review • Code Review system for GIT SCM • Each patchset can be reviewed before merging to release branch • Fix before build 19
  • 20. 20
  • 21. SonarQube • Code Quality tool • Automated code quality analysis • Over 20 programming languages • Coding rules, potential bugs, duplications can be anlyzed via this tool 21
  • 22. 22
  • 23. Let’s integrate Everything 23 Submit changes Submit changes it is applicable Get changes and build Analyze changes GIT Repo Report Output
  • 24. Let’s integrate Everything • Never commit a code to master repository directly • Send patchset to review regularly • Patchset will be automatically builded and sent to analysis to SonarQube • SonarQube runs analysis and generated report • Build and Analysis reports will be linked to patchset in Gerrit Code Review system • Merge code to release branch after manual review 24
  • 25. Let’s integrate Everything • Jenkins CI can build project regularly • After compilation completed tests can be run via Jenkins • Daily sonar analysis can be started during this build • All reports will be ready for the morning 25
  • 27. Conclusion • For ▫ Better quality Code ▫ Fast Development Time ▫ Less cost on money or time • Use Continuous Integration techniques 27
  • 28. Thank you for listening Any Questions… 28
  • 29. References • http://www.slideshare.net/drluckyspin/continuous-integration • https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins • http://www.sonarqube.org/ • https://code.google.com/p/gerrit/ • http://martinfowler.com/articles/continuousIntegration.html 29