SlideShare a Scribd company logo
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Continuous Integration
with Gitlab
Presented by: Andrew Farley
farley@olindata.com
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
Slide
DevOps, Done Right
• Senior DevOps Engineer and Consultant for OlinData
• Specializing in high-scalability engineering on the cloud
• Is an AWS Certified Solutions Architect
• Author and co-author of over 30 iPhone apps and games
• Passionate about open-source and knowledge-sharing
Who am I?
2
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• What is Continuous Integration (CI)?
• Why CI?
• Introduction to Gitlab
• Some ways to use CI
• Your first build with GitLab
• Demo
• Questions?
Overview
3
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• Continuous Integration, or CI, is the practice of “integrating” regularly to prevent
merge and code quality problems from occurring to help identify problems early
during development
• Not required but highly desirable with multiple developers
• “Integration” means more than simply able to merge the code
• It can include but is not limited to…
• Lint (syntax) checks
• Ensuring the code compiles/builds (for compiled languages)
• Enforcing code quality requirements
• Running automated unit tests
• Enforcing minimum performance requirements
• Generating automated documentation
• Performing continuous delivery
• Triggering activities after success or failure such as automated
deployments
What is Continuous Integration?
4
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• In practice, CI-related tasks are initiated off after pushing code to a remote
source control server, such as…
• GitHub (https://github.com)
• GitLab (https://gitlab.com)
• BitBucket (https://bitbucket.org)
• SourceForge (https://sourceforge.net)
• There are various managed / SaaS CI providers that integrate with a number
of the above services including…
• CircleCI (https://circleci.com)
• TravisCI (https://travis-ci.org)
• And there are managed solutions to do the same if you have legal or
security reasons to not be able to ship your code to a SaaS provider
• Jenkins (https://jenkins.io/)
• Hudson (http://hudson-ci.org)
Continuous Integration continued…
5
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
What is GitLab?
6
https://gitlab.com
NOTE: OlinData and the presenter are not a client or partner of GitLab Inc., merely a fellow consumer and active user of their platform
• GitLab is an open-source managed
Source Code Management (SCM)
Repository
• GitLab is a cloud-hosted or managed
alternative to GitHub, though typically hosted on your own server.
• Their feature-sets are comparable, especially with Enterprise GitLab.
• Ideal for customers with legal reasons to keep their code off SaaS and
cloud-based SCM solutions like GitHub.
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Typical CI Workflow
7
Multiple Developers/Teams
Push Code
SCM System Receives
Code, Initiates CI
CI Builds Project
(if necessary)
Automated Tests Occur
Report (failed) Results to team via
Email or other integrations (eg: Slack)
If necessary,
fix failing builds
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Gradual CI Adoption
8
Bug
Reported
Developers
Fix Bug +
Test Case
Continuous
Integration
• Without CI currently on your system, you can gradually begin to add CI even while in a maintenance mode.
• Every time you fix a bug, write a test to ensure that bug does not occur again.
• Example: Users can sign up for a website with a space in front of their email address or name, which
then leads to confusion when they can not login to a system.
• #1: Fix the bug (however you might fix it, either by stripping the newlines, or by rejecting the user
input)
• #2: Write a test case using the right tool (in this case, possibly Selenium) to verify that the input
fields and form only accept the valid input.
• With this in place as your system continues to evolve and change you can be sure new code any current or
future developer writes will not cause that same bug to emerge again.
Deploy
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• Instead of wasting tons of time
performing QA at or after deploying
new code, you can make QA part of the
development process.
• Enforcing code-style guidelines makes
it easier for developers to work together
and take over for one-another, and
makes it easier for new developers.
• Allows your developers to find
problems early during their
development, making debugging and
deployment much easier.
Why CI?
9
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Continuous Integration Uses
10
• Ensuring that code compiles and executes properly
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Continuous Integration Uses
11
• Ensuring the code follows your code style or compliance rules
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Continuous Integration Uses
12
• Code passes a series of unit tests and ensuring minimum performance
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• Assuming you have gitlab setup, you still need to setup a “runner” to be able to execute your builds.
• Runner can be on the Gitlab server or on a throwaway server on a cloud-provider
• You’ll want to follow the install instructions from https://gitlab.com/gitlab-org/gitlab-ci-multi-runner
• You’ll also need your token runner token from: https://YOURGITLABURL/admin/runners
Prepare For Your First Build
13
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
• All you need to do now, assuming your project is already in gitlab, is
add a “.gitlab-ci.yml” file.
• For more about this file, please refer to the official documentation:
http://doc.gitlab.com/ee/ci/yaml/README.html
Your First Build
14
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Slide
Demo
15
https://github.com/olindata/sample-gitlabci-ruby-project
or
https://github.com/olindata/sample-gitlabci-cpp-project
Demo Projects
Continuous Integration with Gitlab
Presented By: Farley
olindata.com
April 5, 2016
DevOps, Done Right
Thanks!
Questions?
Ask them now, or…
http://olindata.com
farley@olindata.com
All trademarks, service marks, trade names, trade dress, product names and logos appearing
on this presentation are the property of their respective owners. All rights reserved.

More Related Content

PDF
Juc boston2014.pptx
PDF
Jenkins vs GitLab CI
PDF
Breaking Bad Habits with GitLab CI
PDF
Breaking bad habits with GitLab CI
PDF
Using GitLab CI
PDF
Gitlab ci-cd
PDF
Why you can't ignore GitLab
PDF
GitLab - Java User Group
Juc boston2014.pptx
Jenkins vs GitLab CI
Breaking Bad Habits with GitLab CI
Breaking bad habits with GitLab CI
Using GitLab CI
Gitlab ci-cd
Why you can't ignore GitLab
GitLab - Java User Group

What's hot (20)

PDF
Introducing GitLab (June 2018)
PDF
Continuous Integration/Deployment with Gitlab CI
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
PPTX
GitLab for CI/CD process
PPTX
Up GitLab Presentation 2015
PDF
CI with Gitlab & Docker
PDF
Gitlab ci, cncf.sk
PDF
Devops Porto - CI/CD at Gitlab
PDF
Continuous Deployment with Kubernetes, Docker and GitLab CI
PPTX
GitLab 8.6 - Release Webcast
PDF
GitLab Frontend and VueJS at GitLab
PDF
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
PPTX
CI/CD with Rancher CLI + Jenkins
PDF
Introduction to GitHub Actions
PPT
Flash Camp Chennai - Build automation of Flex and AIR applications
KEY
Travis CI
PPTX
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
PPTX
2015 05-06-karsten gaebert-akademie-etrainings
PDF
Code review vs pull request
PPTX
CI/CD with GitHub Actions
Introducing GitLab (June 2018)
Continuous Integration/Deployment with Gitlab CI
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab for CI/CD process
Up GitLab Presentation 2015
CI with Gitlab & Docker
Gitlab ci, cncf.sk
Devops Porto - CI/CD at Gitlab
Continuous Deployment with Kubernetes, Docker and GitLab CI
GitLab 8.6 - Release Webcast
GitLab Frontend and VueJS at GitLab
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
CI/CD with Rancher CLI + Jenkins
Introduction to GitHub Actions
Flash Camp Chennai - Build automation of Flex and AIR applications
Travis CI
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
2015 05-06-karsten gaebert-akademie-etrainings
Code review vs pull request
CI/CD with GitHub Actions
Ad

Viewers also liked (8)

PDF
Gitlab Training with GIT and SourceTree
PDF
FOSDEM 2017: GitLab CI
PDF
How to use any static site generator with GitLab Pages.
PDF
継続的デリバリーを支える開発環境
PPTX
Coherenceを利用するときに気をつけること #OracleCoherence
PPT
Ci Tranning
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
PPTX
GitFlow, SourceTree and GitLab
Gitlab Training with GIT and SourceTree
FOSDEM 2017: GitLab CI
How to use any static site generator with GitLab Pages.
継続的デリバリーを支える開発環境
Coherenceを利用するときに気をつけること #OracleCoherence
Ci Tranning
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
GitFlow, SourceTree and GitLab
Ad

Similar to Webinar - Continuous Integration with GitLab (20)

PPTX
Continuous Integration
PDF
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
PPTX
Salesforce DevOps Course - Salesforce DevOps Online Training.pptx
PDF
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
ODP
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
PPTX
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
PDF
DevOps Service | Mindtree
PDF
FUG Agile software engineering practices
PPTX
CI/CD on AWS
PDF
PDF GitOps Cookbook (Third Early Release) Natale Vinto download
PDF
Make Your Team Flow
PDF
GitOps Cookbook (Third Early Release) Natale Vinto
PDF
Git tech
PDF
SQL Server DevOps Jumpstart
PDF
Introducing GitLab (September 2018)
PDF
Datatree.io Webinar: Continuous Integration & Delivery for Agile Teams
PDF
Gitops Cookbook Second Early Release Natale Vinto Alex Soto Bueno
PDF
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
PDF
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
PDF
DevOps Delivery Pipeline
Continuous Integration
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Salesforce DevOps Course - Salesforce DevOps Online Training.pptx
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
DevOps Service | Mindtree
FUG Agile software engineering practices
CI/CD on AWS
PDF GitOps Cookbook (Third Early Release) Natale Vinto download
Make Your Team Flow
GitOps Cookbook (Third Early Release) Natale Vinto
Git tech
SQL Server DevOps Jumpstart
Introducing GitLab (September 2018)
Datatree.io Webinar: Continuous Integration & Delivery for Agile Teams
Gitops Cookbook Second Early Release Natale Vinto Alex Soto Bueno
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 monorepo
DevOps Delivery Pipeline

More from OlinData (20)

PDF
AWS Cost Control: Cloud Custodian
PPTX
Introduction to 2FA on AWS
PDF
AWS Data Migration case study: from tapes to Glacier
PDF
Issuing temporary credentials for my sql using hashicorp vault
PDF
Log monitoring with Logstash and Icinga
PDF
Cfgmgmtcamp 2017 docker is the new tarball
PDF
Icinga 2 and Puppet - Automate Monitoring
PPTX
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
PDF
Webinar - High Availability and Distributed Monitoring with Icinga2
PPTX
Webinar - Windows Application Management with Puppet
PDF
Webinar - Centralising syslogs with the new beats, logstash and elasticsearch
PDF
Icinga 2 and puppet: automate monitoring
PDF
Webinar - Project Management for DevOps
PDF
Using puppet in a traditional enterprise
PDF
Webinar - PuppetDB
PDF
Webinar - Scaling your Puppet infrastructure
PDF
Webinar - Managing your Docker containers and AWS cloud with Puppet
PDF
Webinar - Manage user, groups, packages in windows using puppet
PDF
1 m+ qps on mysql galera cluster
PDF
Workshop puppet (dev opsdays ams 2015)
AWS Cost Control: Cloud Custodian
Introduction to 2FA on AWS
AWS Data Migration case study: from tapes to Glacier
Issuing temporary credentials for my sql using hashicorp vault
Log monitoring with Logstash and Icinga
Cfgmgmtcamp 2017 docker is the new tarball
Icinga 2 and Puppet - Automate Monitoring
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
Webinar - High Availability and Distributed Monitoring with Icinga2
Webinar - Windows Application Management with Puppet
Webinar - Centralising syslogs with the new beats, logstash and elasticsearch
Icinga 2 and puppet: automate monitoring
Webinar - Project Management for DevOps
Using puppet in a traditional enterprise
Webinar - PuppetDB
Webinar - Scaling your Puppet infrastructure
Webinar - Managing your Docker containers and AWS cloud with Puppet
Webinar - Manage user, groups, packages in windows using puppet
1 m+ qps on mysql galera cluster
Workshop puppet (dev opsdays ams 2015)

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Machine Learning_overview_presentation.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
MIND Revenue Release Quarter 2 2025 Press Release
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
Machine Learning_overview_presentation.pptx
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25-Week II
Programs and apps: productivity, graphics, security and other tools
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Webinar - Continuous Integration with GitLab

  • 1. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Continuous Integration with Gitlab Presented by: Andrew Farley [email protected]
  • 2. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 Slide DevOps, Done Right • Senior DevOps Engineer and Consultant for OlinData • Specializing in high-scalability engineering on the cloud • Is an AWS Certified Solutions Architect • Author and co-author of over 30 iPhone apps and games • Passionate about open-source and knowledge-sharing Who am I? 2
  • 3. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • What is Continuous Integration (CI)? • Why CI? • Introduction to Gitlab • Some ways to use CI • Your first build with GitLab • Demo • Questions? Overview 3
  • 4. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • Continuous Integration, or CI, is the practice of “integrating” regularly to prevent merge and code quality problems from occurring to help identify problems early during development • Not required but highly desirable with multiple developers • “Integration” means more than simply able to merge the code • It can include but is not limited to… • Lint (syntax) checks • Ensuring the code compiles/builds (for compiled languages) • Enforcing code quality requirements • Running automated unit tests • Enforcing minimum performance requirements • Generating automated documentation • Performing continuous delivery • Triggering activities after success or failure such as automated deployments What is Continuous Integration? 4
  • 5. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • In practice, CI-related tasks are initiated off after pushing code to a remote source control server, such as… • GitHub (https://github.com) • GitLab (https://gitlab.com) • BitBucket (https://bitbucket.org) • SourceForge (https://sourceforge.net) • There are various managed / SaaS CI providers that integrate with a number of the above services including… • CircleCI (https://circleci.com) • TravisCI (https://travis-ci.org) • And there are managed solutions to do the same if you have legal or security reasons to not be able to ship your code to a SaaS provider • Jenkins (https://jenkins.io/) • Hudson (http://hudson-ci.org) Continuous Integration continued… 5
  • 6. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide What is GitLab? 6 https://gitlab.com NOTE: OlinData and the presenter are not a client or partner of GitLab Inc., merely a fellow consumer and active user of their platform • GitLab is an open-source managed Source Code Management (SCM) Repository • GitLab is a cloud-hosted or managed alternative to GitHub, though typically hosted on your own server. • Their feature-sets are comparable, especially with Enterprise GitLab. • Ideal for customers with legal reasons to keep their code off SaaS and cloud-based SCM solutions like GitHub.
  • 7. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Typical CI Workflow 7 Multiple Developers/Teams Push Code SCM System Receives Code, Initiates CI CI Builds Project (if necessary) Automated Tests Occur Report (failed) Results to team via Email or other integrations (eg: Slack) If necessary, fix failing builds
  • 8. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Gradual CI Adoption 8 Bug Reported Developers Fix Bug + Test Case Continuous Integration • Without CI currently on your system, you can gradually begin to add CI even while in a maintenance mode. • Every time you fix a bug, write a test to ensure that bug does not occur again. • Example: Users can sign up for a website with a space in front of their email address or name, which then leads to confusion when they can not login to a system. • #1: Fix the bug (however you might fix it, either by stripping the newlines, or by rejecting the user input) • #2: Write a test case using the right tool (in this case, possibly Selenium) to verify that the input fields and form only accept the valid input. • With this in place as your system continues to evolve and change you can be sure new code any current or future developer writes will not cause that same bug to emerge again. Deploy
  • 9. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • Instead of wasting tons of time performing QA at or after deploying new code, you can make QA part of the development process. • Enforcing code-style guidelines makes it easier for developers to work together and take over for one-another, and makes it easier for new developers. • Allows your developers to find problems early during their development, making debugging and deployment much easier. Why CI? 9
  • 10. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Continuous Integration Uses 10 • Ensuring that code compiles and executes properly
  • 11. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Continuous Integration Uses 11 • Ensuring the code follows your code style or compliance rules
  • 12. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Continuous Integration Uses 12 • Code passes a series of unit tests and ensuring minimum performance
  • 13. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • Assuming you have gitlab setup, you still need to setup a “runner” to be able to execute your builds. • Runner can be on the Gitlab server or on a throwaway server on a cloud-provider • You’ll want to follow the install instructions from https://gitlab.com/gitlab-org/gitlab-ci-multi-runner • You’ll also need your token runner token from: https://YOURGITLABURL/admin/runners Prepare For Your First Build 13
  • 14. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide • All you need to do now, assuming your project is already in gitlab, is add a “.gitlab-ci.yml” file. • For more about this file, please refer to the official documentation: http://doc.gitlab.com/ee/ci/yaml/README.html Your First Build 14
  • 15. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Slide Demo 15 https://github.com/olindata/sample-gitlabci-ruby-project or https://github.com/olindata/sample-gitlabci-cpp-project Demo Projects
  • 16. Continuous Integration with Gitlab Presented By: Farley olindata.com April 5, 2016 DevOps, Done Right Thanks! Questions? Ask them now, or… http://olindata.com [email protected] All trademarks, service marks, trade names, trade dress, product names and logos appearing on this presentation are the property of their respective owners. All rights reserved.