SlideShare a Scribd company logo
Continuous Integration/Deployment
with Gitlab CI
Who we are?
David Hahn, Dipl-Inf.(FH)
Senior Software Engineer
d.hahn@salt-and-pepper.eu
Denis Filimonov, B.Sc
Software Engineer
d.filimonov@salt-and-pepper.eu
2
Agenda
- Introduction
- Continuous Integration
- Continuous Delivery and Deployment
- About Gitlab
- Gitlab CI
- About Gitlab CI
- Stages and Pipelines
- UI
- Runners
- CI as Code
- Show Cases
- Node.js + React
- Java + Angular
- Electron
3
Continuous Integration
Definition
Continuous Integration 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.
Martin Fowler
4
Continuous Integration
How and Why?
- Maintain a single source repository
- Automate the build
- Make your build self-testing
- Keep the build fast
- Keep the build on the CI machine
- Test in a clone of production environment
- Make it easy for everyone to get the latest executable
- Make the process transparent for everyone
How:
- Detect development problems earlier
- Reduce risks of cost, schedule and budget
- Find and remove bugs earlier
- Deliver new features and get user feedback more rapidly
Why:
5
Continuous Delivery is a development discipline where you build software in such
a way that the software can be released to production at any time. Continuous
Deployment means that every change goes through the pipeline and automatically
gets put into production, resulting in many production deployments every day.
Martin Fowler
Continuous Delivery/Deployment
Definition
6
Continuous Delivery/Deployment
How and Why?
- Continuously integrating the software done by
the development team
- Run automated tests
- Push build to production-like environment
- Can release one version at the push of the button
How:
- Reduce deployment risks
- Change the version in production more rapidly
- Get the feedback earlier
Why:
7
CI and CD
Summary
8
Gitlab
What is it?
- Git based hosting and collaboration platform
- Open source, freemium
- Hosted (free) or on premise
- Actively maintained
9
Git Repository
User Management
CI Wiki
Issue Boards
Container
Registry
Time
Tracker
Mattermost
integration
Gitlab CI
What and Why?
- Fully integrated with Gitlab
- Integrated since v. 8.0
- Build scripts hosted in repo
- Git hooks
- Hosted (free) or on premise
- Actively maintained
What:
- Code and build scripts in the same repo
- Easy to start
- Scalable
- Isolated test environment
Why:
10
Gitlab CI
Pipelines and Stages
A pipeline is a group of jobs that get executed in stages(batches). All of the jobs in a stage are
executed in parallel, and if they all succeed, the pipeline moves on to the next stage. If one of
the jobs fails, the next stage is not executed.
Pipelines are defined in .gitlab-ci.yml by specifying jobs in stages:
11
Gitlab CI
UI
Pipeline status:
Job status:
12
Gitlab CI
Runners
Runner is an application, that processes builds. It receives commands from Gitlab CI.
It is possible to tag runners so jobs run on runners which can process them (e.g. different OS).
- Works with Linux, Windows and OSX
- Works as a Docker container
- Shared or specific
- Multiple Executors:
- Docker -> In Docker container
- Shell -> Locally
- Docker SSH -> In Docker container over SSH
- SSH -> Remote using SSH
13
Gitlab CI
CI as Code
1414
Define Stages
.gitlab-ci.yml in root

Gitlab CI Variables

Define environment

Example
Gitlab CI
CI as Code: Stage
Variables
Before script
Script
After Script
Artifacts
Only/ Except
Tags
When
15
16
Show Case
Node.js + React
- Using of docker runner
- Using of Gitlab Pages
- Using of Node.js for Tests and Build
- Deploying Single Page Application without Backend
- Using of Gitlab CI Cache
17
Show Case
Java + Angular
- Using of shell runner
- Connecting the containers in docker network
- Using of docker-compose for simple management of containers
18
Show Case
Java + Angular: Architecture
19
Show Case
Java + Angular: Docker-Compose
Compose is a tool for defining and running multi-container Docker applications. With Compose,
you use a YAML file to configure your application’s services. Then, with a single command, you
create and start all the services from your configuration.
20
Show Case
Electron
- Build on 3 platforms with different runners
- Artifacts Api
- Build Trigger Api
21
Show Case
Electron: Pipelines
22
Gitlab CI vs Jenkins
- Parallel builds
- Docker integration
- Fully Integrated in Gitlab
- Configurability per branch already on jobs-level
- Permission inheritance (Repository Manager)
- Highly customisable
- Community. A lot of resources and tutorials
- Supports multiple version control systems
- Easy to get up and running
- Cross-platform
- Build-in time based execution
- UI and Dashboard
- Report integration
Pros:
- Integrated only in Gitlab
- Poor quality of some plug-ins
- High overhead (setup and host).
Contras:
23
Environments
Auto DevOps
Review Apps
Trigger pipelines through the GitLab API
Trigger pipelines on a schedule
Deploy Boards - Check the current health
…
24
Gitlab CI
Another features
But not today!
25
26
Sources
Links:
- https://about.gitlab.com/features/gitlab-ci-cd/
- https://www.inovex.de/blog/modern-cicd-with-jenkins-2-and-gitlab-ci-comparison/
- https://martinfowler.com/
- https://docs.docker.com/compose/
- https://www.docker.com
27
Pictures:
- http://sqlity.net/wp-content/uploads/2015/01/Benefits_of_Continuous_Integration.png
- https://www.zuehlke.com/blog/app/uploads/2015/11/geek-and-poke.png
- http://electric-cloud.com/wp-content/uploads/use-case-graphic_continuous-delivery.png
- https://docs.gitlab.com/ee/ci/img/cicd_pipeline_infograph.png
- https://image.slidesharecdn.com/ranchergitlab320171006-171007014521/95/rancher-gitlab-3-21-638.jpg?
cb=1507341238
- https://i.pinimg.com/originals/2b/be/4b/2bbe4b9818440b610eadd30195fff3fa.gif
- https://denibertovic.com/talks/supercharge-development-env-using-docker/img/what_is_docker.png
- http://blog.arungupta.me/wp-content/uploads/2015/12/docker-networking.png
- https://media.serious.io/98dadb4361c5f588/static.gif
- http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef0134887d41fd970c-pi
Ad

More Related Content

What's hot (20)

CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
Joerg Henning
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
Kumar Shìvam
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Indonesia
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
Oleksii Holub
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
Md. Minhazul Haque
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
Nilesh Gule
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
Taisuke Inoue
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
Annie Huang
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CI
CEE-SEC(R)
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github Actions
Knoldus Inc.
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
Viyaan Jhiingade
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
Github in Action
Github in ActionGithub in Action
Github in Action
Morten Christensen
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
Joerg Henning
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
Kumar Shìvam
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
Noa Harel
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Indonesia
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
Oleksii Holub
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
Nilesh Gule
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
Annie Huang
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CI
CEE-SEC(R)
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github Actions
Knoldus Inc.
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel
 

Similar to Continuous Integration/Deployment with Gitlab CI (20)

High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
Vũ Nguyễn
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
Oliver N
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
sparkfabrik
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetes
inovex GmbH
 
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise StackContinuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
DevOps.com
 
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptxDeploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Pankaj Goyal
 
Docker e git lab
Docker e git labDocker e git lab
Docker e git lab
Gianluca Padovani
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
Dejan Vukmirovic
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
Svetlin Nakov
 
A Ci Experience
A Ci ExperienceA Ci Experience
A Ci Experience
Umut IŞIK
 
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Nico Meisenzahl
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
edsonJeancarloRuedaS
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
Fab L
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/Green
Sonatype
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
Bernd Alter
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
Giovanni Toraldo
 
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Evgeniy Kuzmin
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
Sujai Sivasamy
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
Vũ Nguyễn
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
Oliver N
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
sparkfabrik
 
CI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und KubernetesCI/CD Pipeline mit Gitlab CI und Kubernetes
CI/CD Pipeline mit Gitlab CI und Kubernetes
inovex GmbH
 
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise StackContinuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
DevOps.com
 
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptxDeploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Pankaj Goyal
 
GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)GitHub Actions (Nakov at RuseConf, Sept 2022)
GitHub Actions (Nakov at RuseConf, Sept 2022)
Svetlin Nakov
 
A Ci Experience
A Ci ExperienceA Ci Experience
A Ci Experience
Umut IŞIK
 
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Nico Meisenzahl
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
Fab L
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/Green
Sonatype
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
Bernd Alter
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
Giovanni Toraldo
 
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Evgeniy Kuzmin
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Ad

Recently uploaded (20)

EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Sales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptxSales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptx
EliandoLawnote
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
wareshashahzadiii
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Sales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptxSales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptx
EliandoLawnote
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025
wareshashahzadiii
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Ad

Continuous Integration/Deployment with Gitlab CI

  • 2. Who we are? David Hahn, Dipl-Inf.(FH) Senior Software Engineer [email protected] Denis Filimonov, B.Sc Software Engineer d.fi[email protected] 2
  • 3. Agenda - Introduction - Continuous Integration - Continuous Delivery and Deployment - About Gitlab - Gitlab CI - About Gitlab CI - Stages and Pipelines - UI - Runners - CI as Code - Show Cases - Node.js + React - Java + Angular - Electron 3
  • 4. Continuous Integration Definition Continuous Integration 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. Martin Fowler 4
  • 5. Continuous Integration How and Why? - Maintain a single source repository - Automate the build - Make your build self-testing - Keep the build fast - Keep the build on the CI machine - Test in a clone of production environment - Make it easy for everyone to get the latest executable - Make the process transparent for everyone How: - Detect development problems earlier - Reduce risks of cost, schedule and budget - Find and remove bugs earlier - Deliver new features and get user feedback more rapidly Why: 5
  • 6. Continuous Delivery is a development discipline where you build software in such a way that the software can be released to production at any time. Continuous Deployment means that every change goes through the pipeline and automatically gets put into production, resulting in many production deployments every day. Martin Fowler Continuous Delivery/Deployment Definition 6
  • 7. Continuous Delivery/Deployment How and Why? - Continuously integrating the software done by the development team - Run automated tests - Push build to production-like environment - Can release one version at the push of the button How: - Reduce deployment risks - Change the version in production more rapidly - Get the feedback earlier Why: 7
  • 9. Gitlab What is it? - Git based hosting and collaboration platform - Open source, freemium - Hosted (free) or on premise - Actively maintained 9 Git Repository User Management CI Wiki Issue Boards Container Registry Time Tracker Mattermost integration
  • 10. Gitlab CI What and Why? - Fully integrated with Gitlab - Integrated since v. 8.0 - Build scripts hosted in repo - Git hooks - Hosted (free) or on premise - Actively maintained What: - Code and build scripts in the same repo - Easy to start - Scalable - Isolated test environment Why: 10
  • 11. Gitlab CI Pipelines and Stages A pipeline is a group of jobs that get executed in stages(batches). All of the jobs in a stage are executed in parallel, and if they all succeed, the pipeline moves on to the next stage. If one of the jobs fails, the next stage is not executed. Pipelines are defined in .gitlab-ci.yml by specifying jobs in stages: 11
  • 13. Gitlab CI Runners Runner is an application, that processes builds. It receives commands from Gitlab CI. It is possible to tag runners so jobs run on runners which can process them (e.g. different OS). - Works with Linux, Windows and OSX - Works as a Docker container - Shared or specific - Multiple Executors: - Docker -> In Docker container - Shell -> Locally - Docker SSH -> In Docker container over SSH - SSH -> Remote using SSH 13
  • 14. Gitlab CI CI as Code 1414 Define Stages .gitlab-ci.yml in root Gitlab CI Variables Define environment Example
  • 15. Gitlab CI CI as Code: Stage Variables Before script Script After Script Artifacts Only/ Except Tags When 15
  • 16. 16
  • 17. Show Case Node.js + React - Using of docker runner - Using of Gitlab Pages - Using of Node.js for Tests and Build - Deploying Single Page Application without Backend - Using of Gitlab CI Cache 17
  • 18. Show Case Java + Angular - Using of shell runner - Connecting the containers in docker network - Using of docker-compose for simple management of containers 18
  • 19. Show Case Java + Angular: Architecture 19
  • 20. Show Case Java + Angular: Docker-Compose Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. 20
  • 21. Show Case Electron - Build on 3 platforms with different runners - Artifacts Api - Build Trigger Api 21
  • 23. Gitlab CI vs Jenkins - Parallel builds - Docker integration - Fully Integrated in Gitlab - Configurability per branch already on jobs-level - Permission inheritance (Repository Manager) - Highly customisable - Community. A lot of resources and tutorials - Supports multiple version control systems - Easy to get up and running - Cross-platform - Build-in time based execution - UI and Dashboard - Report integration Pros: - Integrated only in Gitlab - Poor quality of some plug-ins - High overhead (setup and host). Contras: 23
  • 24. Environments Auto DevOps Review Apps Trigger pipelines through the GitLab API Trigger pipelines on a schedule Deploy Boards - Check the current health … 24 Gitlab CI Another features But not today!
  • 25. 25
  • 26. 26
  • 27. Sources Links: - https://about.gitlab.com/features/gitlab-ci-cd/ - https://www.inovex.de/blog/modern-cicd-with-jenkins-2-and-gitlab-ci-comparison/ - https://martinfowler.com/ - https://docs.docker.com/compose/ - https://www.docker.com 27 Pictures: - http://sqlity.net/wp-content/uploads/2015/01/Benefits_of_Continuous_Integration.png - https://www.zuehlke.com/blog/app/uploads/2015/11/geek-and-poke.png - http://electric-cloud.com/wp-content/uploads/use-case-graphic_continuous-delivery.png - https://docs.gitlab.com/ee/ci/img/cicd_pipeline_infograph.png - https://image.slidesharecdn.com/ranchergitlab320171006-171007014521/95/rancher-gitlab-3-21-638.jpg? cb=1507341238 - https://i.pinimg.com/originals/2b/be/4b/2bbe4b9818440b610eadd30195fff3fa.gif - https://denibertovic.com/talks/supercharge-development-env-using-docker/img/what_is_docker.png - http://blog.arungupta.me/wp-content/uploads/2015/12/docker-networking.png - https://media.serious.io/98dadb4361c5f588/static.gif - http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef0134887d41fd970c-pi