SlideShare a Scribd company logo
1 of 32
Download to read offline
Umut IŞIK
A CI Experince
1. What is CI?
2. What is for me?
3. Project, Team and WoW?
4. Gitlab and CI
5. What we did?
6. QA
Agenda
First description created on Wikipedia;
Continuous Integration is a Software Engineering term
describing a process that completely rebuilds and tests an
application frequently. Generally it takes the form of a
server process or daemon that monitors a file system or
Source Code Control system for changes and
automatically runs the build process and then runs test
scripts.
1. What is CI?
Current description on Wikipedia
In software engineering, continuous integration (CI) is the
practice of merging all developer working copies to a
shared mainline several times a day.
1. What is CI?
Description on opensource.com
Continuous integration (CI) is the process of automatically
detecting, pulling, building, and (in most cases) doing unit
testing as source code is changed for a product. CI is the
activity that starts the pipeline.
The goal of CI is to quickly make sure a new change from a
developer is "good" and suitable for further use in the code
base.
1. What is CI?
Relies on the following principles;
▪ Maintain a code repository
▪ Every commit should be built
▪ Automate the build
▪ Test in a clone of the production environment
▪ Make the build self-testing
▪ Everyone commits to the baseline every day
▪ Everyone can see the results of the latest build
1. What is CI?
▪Not a new concept
▪A virtual team mate
▪ A good reviewer
▪ Backlog generator
2. What is for me?
▪5 projects
▪PHP and a bit Scala and Python
▪Slim, Symfony, Wordpress
▪Jquery and React
▪AWS as cloud
▪Docker for local devbox
▪Git and Gitlab
3. Project, Team and WoW?
+ CI
Team;
▪4 backend developer
▪2 UI developer
▪2 BA
▪2 QA
▪1 PO
▪Me
3. Project, Team and WoW?
Branching model;
▪Feature branches for every implementation
▪Dynamic development branch
▪Instant release branches
▪The release branch is merged to master after go-live
3. Project, Team and WoW?
▪GitLab offers a continuous integration service.
▪A .gitlab-ci.yml file in the root directory of your repository.
▪If everything runs OK you’ll get a nice green checkmark.
▪More features on Premium version.
4. Gitlab and CI
Keywords;
▪Job is the atomic element of Gitlab CI
▪Jobs can be dependent to each other
▪A fail the preceding job will block the following jobs
4. Gitlab and CI
Keywords;
▪Stage is the batch of jobs
▪Parallel execution
▪Stages are dependent to former
4. Gitlab and CI
Keywords;
▪Runner to execute the jobs
▪Instance of Gitlab Runner
▪Multiple runners
▪Shell, Docker executers
4. Gitlab and CI
Keywords;
▪Pipeline is a group of stages
▪Specific branches or workflows.
A simple sample pipeline;
4. Gitlab and CI
Another sample pipeline from Gitlab’s own repo;
4. Gitlab and CI
▪Pipeline for every branch type (feature, development,
master, release)
▪Logical and hierarchical stages
5. What we did?
Stage #1 – Lint
▪To flag programming errors
▪For interpreted languages
5. What we did?
Stage #1 – Lint
▪css_linter
▪docker_linter
▪php_linter
▪js_linter
5. What we did?
Stage #2 – Check
▪Checking code without execution
▪Static code analysis
▪Dependency checks
5. What we did?
▪code_sniffer: PHP Code Sniffer
▪sec_composer_check: SensioLabs
▪sec_psecio_parse
▪forgotten_debug
▪magic_number: if ($http_status_code === 200)
5. What we did?
Stage #3 – Test
▪Execute the code
▪Unittests
▪Functional tests
5. What we did?
Stage #3 – Test
▪unittest:withcodecoverage
▪unittest:withoutcodecoverage
▪functional-test:tag1
▪functional-test:tag2
▪functional-test:tag3
5. What we did?
Stage #5 – Postrelease
Stage #7 Production
Stage #4 – Release
Stage #6 Report
5. What we did?
For feature branches;
5. What we did?
For feature branches;
5. What we did?
For development branch;
5. What we did?
For release branches;
5. What we did?
For master branch;
5. What we did?
For master branch;
5. What we did?
Conclusion;
▪A usefull practice
▪Motivation for tests
▪Time saver
▪Quality assurance
▪Developer onboarding
5. What we did?
6. QA
Thank you
for
listening…
☺

More Related Content

What's hot

[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
 
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence Parag Gajbhiye
 
DevOps Transformation in Technical
DevOps Transformation in TechnicalDevOps Transformation in Technical
DevOps Transformation in TechnicalOpsta
 
Git slides
Git slidesGit slides
Git slidesNanyak S
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cdAmandeep Singh
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based developmentgo_oh
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGit in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGina Bustos
 
2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainingsHaufe-Lexware GmbH & Co KG
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for BeginnersNebulaworks
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsAtlassian
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneyAbhinav Gupta
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIsTim Osborn
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynSascha Scholz
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Endava
 

What's hot (20)

[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
 
CICD by Teerapat
CICD by TeerapatCICD by Teerapat
CICD by Teerapat
 
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
 
DevOps Transformation in Technical
DevOps Transformation in TechnicalDevOps Transformation in Technical
DevOps Transformation in Technical
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Git slides
Git slidesGit slides
Git slides
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepoGit in the Enterprise: How to succeed at DevOps using Git and a monorepo
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
 
2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings2015 05-06-karsten gaebert-akademie-etrainings
2015 05-06-karsten gaebert-akademie-etrainings
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release Streams
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
 
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
 

Similar to A Ci Experience

Introduction to GItlab CICD Presentation.pptx
Introduction to GItlab CICD Presentation.pptxIntroduction to GItlab CICD Presentation.pptx
Introduction to GItlab CICD Presentation.pptxKnoldus Inc.
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
Git Branching – the battle of the ages
Git Branching – the battle of the agesGit Branching – the battle of the ages
Git Branching – the battle of the agesJasmin Fluri
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPGiuseppe Morelli
 
Gradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build timesGradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build timesRene Gröschke
 
Trending pipelines of using CI-CD
Trending pipelines of using CI-CDTrending pipelines of using CI-CD
Trending pipelines of using CI-CDAdarshMathuri
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics 丈 宮本
 
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket PipelinesSalesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket PipelinesAbhinav Gupta
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for NetworkDamien Garros
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps JumpstartOri Donner
 
Webinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLabWebinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLabOlinData
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.skJuraj Hantak
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing selfChen-Tien Tsai
 
La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...CloudNativeElSalvado
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Noa Harel
 

Similar to A Ci Experience (20)

Introduction to GItlab CICD Presentation.pptx
Introduction to GItlab CICD Presentation.pptxIntroduction to GItlab CICD Presentation.pptx
Introduction to GItlab CICD Presentation.pptx
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
 
Git Branching – the battle of the ages
Git Branching – the battle of the agesGit Branching – the battle of the ages
Git Branching – the battle of the ages
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHP
 
Ci & proServer
Ci & proServerCi & proServer
Ci & proServer
 
Gradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build timesGradle - From minutes to seconds: minimizing build times
Gradle - From minutes to seconds: minimizing build times
 
Trending pipelines of using CI-CD
Trending pipelines of using CI-CDTrending pipelines of using CI-CD
Trending pipelines of using CI-CD
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket PipelinesSalesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
Salesforce CI (Continuous Integration) - SFDX + Bitbucket Pipelines
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
Docker e git lab
Docker e git labDocker e git lab
Docker e git lab
 
Webinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLabWebinar - Continuous Integration with GitLab
Webinar - Continuous Integration with GitLab
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 

More from Umut IŞIK

Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Umut IŞIK
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulamaUmut IŞIK
 
Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Umut IŞIK
 
BBS Flyers 08/2016
BBS Flyers 08/2016BBS Flyers 08/2016
BBS Flyers 08/2016Umut IŞIK
 
BBS Flyers 07/2016
BBS Flyers 07/2016BBS Flyers 07/2016
BBS Flyers 07/2016Umut IŞIK
 
BBS Flyers 05/2016
BBS Flyers 05/2016BBS Flyers 05/2016
BBS Flyers 05/2016Umut IŞIK
 
BBS Flyers 03/2016
BBS Flyers 03/2016BBS Flyers 03/2016
BBS Flyers 03/2016Umut IŞIK
 
BBS Flyers 02/2016
BBS Flyers 02/2016BBS Flyers 02/2016
BBS Flyers 02/2016Umut IŞIK
 
BBS Flyers 01/2016
BBS Flyers 01/2016BBS Flyers 01/2016
BBS Flyers 01/2016Umut IŞIK
 
BBS Flyers 12/2015
BBS Flyers 12/2015BBS Flyers 12/2015
BBS Flyers 12/2015Umut IŞIK
 
BBS Flyers 11/2015
BBS Flyers 11/2015BBS Flyers 11/2015
BBS Flyers 11/2015Umut IŞIK
 
BBS Flyers 10/2015
BBS Flyers 10/2015BBS Flyers 10/2015
BBS Flyers 10/2015Umut IŞIK
 
BBS Flyers 09/2015
BBS Flyers 09/2015BBS Flyers 09/2015
BBS Flyers 09/2015Umut IŞIK
 
BBS Flyers 08/2015
BBS Flyers 08/2015BBS Flyers 08/2015
BBS Flyers 08/2015Umut IŞIK
 
BBS Flyers-07-2015
BBS Flyers-07-2015BBS Flyers-07-2015
BBS Flyers-07-2015Umut IŞIK
 
BBS Flyers 06/2015
BBS Flyers 06/2015BBS Flyers 06/2015
BBS Flyers 06/2015Umut IŞIK
 
BBS Flyers 05/2015
BBS Flyers 05/2015BBS Flyers 05/2015
BBS Flyers 05/2015Umut IŞIK
 
BBS Flyers 04/2015
BBS Flyers 04/2015BBS Flyers 04/2015
BBS Flyers 04/2015Umut IŞIK
 
BBB Flyers 03/2015
BBB Flyers 03/2015BBB Flyers 03/2015
BBB Flyers 03/2015Umut IŞIK
 

More from Umut IŞIK (20)

Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulama
 
Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?Açık Kaynağa Nasıl Katkı Yapabiliriz?
Açık Kaynağa Nasıl Katkı Yapabiliriz?
 
BBS Flyers 08/2016
BBS Flyers 08/2016BBS Flyers 08/2016
BBS Flyers 08/2016
 
BBS Flyers 07/2016
BBS Flyers 07/2016BBS Flyers 07/2016
BBS Flyers 07/2016
 
BBS Flyers 05/2016
BBS Flyers 05/2016BBS Flyers 05/2016
BBS Flyers 05/2016
 
BBS Flyers 03/2016
BBS Flyers 03/2016BBS Flyers 03/2016
BBS Flyers 03/2016
 
BBS Flyers 02/2016
BBS Flyers 02/2016BBS Flyers 02/2016
BBS Flyers 02/2016
 
BBS Flyers 01/2016
BBS Flyers 01/2016BBS Flyers 01/2016
BBS Flyers 01/2016
 
BBS Flyers 12/2015
BBS Flyers 12/2015BBS Flyers 12/2015
BBS Flyers 12/2015
 
BBS Flyers 11/2015
BBS Flyers 11/2015BBS Flyers 11/2015
BBS Flyers 11/2015
 
BBS Flyers 10/2015
BBS Flyers 10/2015BBS Flyers 10/2015
BBS Flyers 10/2015
 
BBS Flyers 09/2015
BBS Flyers 09/2015BBS Flyers 09/2015
BBS Flyers 09/2015
 
Ionic
IonicIonic
Ionic
 
BBS Flyers 08/2015
BBS Flyers 08/2015BBS Flyers 08/2015
BBS Flyers 08/2015
 
BBS Flyers-07-2015
BBS Flyers-07-2015BBS Flyers-07-2015
BBS Flyers-07-2015
 
BBS Flyers 06/2015
BBS Flyers 06/2015BBS Flyers 06/2015
BBS Flyers 06/2015
 
BBS Flyers 05/2015
BBS Flyers 05/2015BBS Flyers 05/2015
BBS Flyers 05/2015
 
BBS Flyers 04/2015
BBS Flyers 04/2015BBS Flyers 04/2015
BBS Flyers 04/2015
 
BBB Flyers 03/2015
BBB Flyers 03/2015BBB Flyers 03/2015
BBB Flyers 03/2015
 

Recently uploaded

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

A Ci Experience

  • 1. Umut IŞIK A CI Experince
  • 2. 1. What is CI? 2. What is for me? 3. Project, Team and WoW? 4. Gitlab and CI 5. What we did? 6. QA Agenda
  • 3. First description created on Wikipedia; Continuous Integration is a Software Engineering term describing a process that completely rebuilds and tests an application frequently. Generally it takes the form of a server process or daemon that monitors a file system or Source Code Control system for changes and automatically runs the build process and then runs test scripts. 1. What is CI?
  • 4. Current description on Wikipedia In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. 1. What is CI?
  • 5. Description on opensource.com Continuous integration (CI) is the process of automatically detecting, pulling, building, and (in most cases) doing unit testing as source code is changed for a product. CI is the activity that starts the pipeline. The goal of CI is to quickly make sure a new change from a developer is "good" and suitable for further use in the code base. 1. What is CI?
  • 6. Relies on the following principles; ▪ Maintain a code repository ▪ Every commit should be built ▪ Automate the build ▪ Test in a clone of the production environment ▪ Make the build self-testing ▪ Everyone commits to the baseline every day ▪ Everyone can see the results of the latest build 1. What is CI?
  • 7. ▪Not a new concept ▪A virtual team mate ▪ A good reviewer ▪ Backlog generator 2. What is for me?
  • 8. ▪5 projects ▪PHP and a bit Scala and Python ▪Slim, Symfony, Wordpress ▪Jquery and React ▪AWS as cloud ▪Docker for local devbox ▪Git and Gitlab 3. Project, Team and WoW?
  • 9. + CI Team; ▪4 backend developer ▪2 UI developer ▪2 BA ▪2 QA ▪1 PO ▪Me 3. Project, Team and WoW?
  • 10. Branching model; ▪Feature branches for every implementation ▪Dynamic development branch ▪Instant release branches ▪The release branch is merged to master after go-live 3. Project, Team and WoW?
  • 11. ▪GitLab offers a continuous integration service. ▪A .gitlab-ci.yml file in the root directory of your repository. ▪If everything runs OK you’ll get a nice green checkmark. ▪More features on Premium version. 4. Gitlab and CI
  • 12. Keywords; ▪Job is the atomic element of Gitlab CI ▪Jobs can be dependent to each other ▪A fail the preceding job will block the following jobs 4. Gitlab and CI
  • 13. Keywords; ▪Stage is the batch of jobs ▪Parallel execution ▪Stages are dependent to former 4. Gitlab and CI
  • 14. Keywords; ▪Runner to execute the jobs ▪Instance of Gitlab Runner ▪Multiple runners ▪Shell, Docker executers 4. Gitlab and CI
  • 15. Keywords; ▪Pipeline is a group of stages ▪Specific branches or workflows. A simple sample pipeline; 4. Gitlab and CI
  • 16. Another sample pipeline from Gitlab’s own repo; 4. Gitlab and CI
  • 17. ▪Pipeline for every branch type (feature, development, master, release) ▪Logical and hierarchical stages 5. What we did?
  • 18. Stage #1 – Lint ▪To flag programming errors ▪For interpreted languages 5. What we did?
  • 19. Stage #1 – Lint ▪css_linter ▪docker_linter ▪php_linter ▪js_linter 5. What we did?
  • 20. Stage #2 – Check ▪Checking code without execution ▪Static code analysis ▪Dependency checks 5. What we did?
  • 21. ▪code_sniffer: PHP Code Sniffer ▪sec_composer_check: SensioLabs ▪sec_psecio_parse ▪forgotten_debug ▪magic_number: if ($http_status_code === 200) 5. What we did?
  • 22. Stage #3 – Test ▪Execute the code ▪Unittests ▪Functional tests 5. What we did?
  • 23. Stage #3 – Test ▪unittest:withcodecoverage ▪unittest:withoutcodecoverage ▪functional-test:tag1 ▪functional-test:tag2 ▪functional-test:tag3 5. What we did?
  • 24. Stage #5 – Postrelease Stage #7 Production Stage #4 – Release Stage #6 Report 5. What we did?
  • 25. For feature branches; 5. What we did?
  • 26. For feature branches; 5. What we did?
  • 28. For release branches; 5. What we did?
  • 29. For master branch; 5. What we did?
  • 30. For master branch; 5. What we did?
  • 31. Conclusion; ▪A usefull practice ▪Motivation for tests ▪Time saver ▪Quality assurance ▪Developer onboarding 5. What we did?