SlideShare a Scribd company logo
1 of 33
Download to read offline
17.09.2018
Roman Pickl
Continuous Delivery with Jenkins
Pipelines
3© Elektrobit (EB) 2018 3
1. docker run -p 8080:8080 jenkinsci/blueocean (add –p 44444:44444 or any other port to try
the ssh linter)
2. Go to http://localhost:8080/
3. Unlock jenkins with initialpw from log file
4. Install suggested plugins (you may have to continue the process in case any plugins are
broken and update plugins later on)
5. Create admin user / or continue with admin and initalpw
6. Open http://localhost:8080/blue/pipelines
7. Generate new Pipeline with Github repository
8. Create Jenkinsfile (e.g. https://github.com/rompic/jenkinspipeline)
Demo
Continuous Delivery with Jenkins Pipelines
4© Elektrobit (EB) 2018
• Technical Project Manager @ Elektrobit
• Uses Jenkins since 2012
• Loves CI/CD/DevOps
• Here to learn
Roman Pickl (@rompic)
How did I end up here?
Continuous Delivery with Jenkins Pipelines
5© Elektrobit (EB) 2018
Jez Humble on Continuous Delivery(2012): https://www.youtube.com/watch?v=skLJuksCRTw
Automated implementation of your system’s build, deploy, test,
release process
• Every change results in a build
• Every build is a release candidate
• Delivery can be done at any time, on any environment
 Make releases a non-event
Deployment Pipeline provides:
• Visibility
• Feedback
• Control
Continuous Delivery (CD)
Continuous Delivery with Jenkins Pipelines
Read these books
if you want to
know more!
6© Elektrobit (EB) 2018
Jez Humble D. F., Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (2010)
Deployment Pipelines (Let’s build it with jenkins)
Continuous Delivery with Jenkins Pipelines
7© Elektrobit (EB) 2018
http://dduportal.github.io/presentations/mixit-2017-jenkins-pipeline/slides.html#/meet_jenkins
https://jenkins.io/blog/2017/04/05/say-hello-blueocean-1-0/
http://stats.jenkins.io/
• Created by Kohsuke Kawaguchi
• Initial Release 2005 (Hudson)
• Open Source (MIT License)
• Active and independent community (https://jenkins.io)
• 178,800 active installations
• 1,600+ plugins (!)
• Since 2.0 Pipelines (April 2016) are first class citizens
• Pipeline as Code (Jenkinsfile).
• New User Experience “Blue Ocean” with Blue Ocean Pipeline Editor
• Blue Ocean 1.8 released in August 2018
#1 Continuous Integration and Delivery Server
Jenkins
Continuous Delivery with Jenkins Pipelines
8© Elektrobit (EB) 2018
Welcome Blue Ocean!
Continuous Delivery with Jenkins Pipelines
9© Elektrobit (EB) 2018
4.Choose a repository
3. Choose organization
2. Provide access key
1. Type of source control
Create a Pipeline Wizard
Continuous Delivery with Jenkins Pipelines
10© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/jenkinsfile/
Written in a Groovy DSL
“Jenkinsfile” in top level folder (different path possible since June
2017 https://issues.jenkins-ci.org/browse/JENKINS-34561)
Store in SCM (e.g. GIT) for additional benefits
• Code review/iteration
• Audit trail
• Single source of truth
Supports two syntaxes (can be mixed)
• Declarative pipelines (easier; “new”; 1.0 Feb 2017)
• Scripted pipelines (more powerful)
Jenkinsfile
Continuous Delivery with Jenkins Pipelines
11© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/syntax/
Declarative PipelineScripted Pipelines
Continuous Delivery with Jenkins Pipelines
Scripted vs. Declarative
12© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/syntax/
Declarative PipelineScripted Pipelines
Continuous Delivery with Jenkins Pipelines
Scripted vs. Declarative
• imperative programming model
• fully featured programming environment,
• higher flexibility and extensibility
• very few limits
 for power-users and more complex requirements
• declarative programming model
• simpler and more opinionated syntax for authoring Jenkins
Pipeline.
• Allows for validation and a visual editor
• limits what is available to the user
 ideal choice for simpler continuous delivery pipelines
Both
• use Groovy
• same Pipeline sub-system underneath
• mostly use same steps
• able to utilize Shared Libraries
 can be mixed using the script step
See https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/ for a more complex example of migrating a freestyle job to a
declarative/scripted pipeline.
13© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/syntax/
• takes a block of Scripted Pipeline & executes that in the
Declarative Pipeline
• can provide a useful "escape hatch".
• script blocks of non-trivial size and/or complexity should be
moved into Shared Libraries
script Step
Continuous Delivery with Jenkins Pipelines
14© Elektrobit (EB) 2018
Settings
Continuous Delivery with Jenkins Pipelines
15© Elektrobit (EB) 2018
Stages
Continuous Delivery with Jenkins Pipelines
16© Elektrobit (EB) 2018
Parallel Execution
Continuous Delivery with Jenkins Pipelines
Declarative 1.3 (released 14.06.2018) allows you to add multiple
“sequential” stages in the same parallel branch.
See https://www.cloudbees.com/blog/whats-new-declarative-pipeline-
13-sequential-stages
17© Elektrobit (EB) 2018
Approval
Continuous Delivery with Jenkins Pipelines
Deploy to Live / Release omitted here
18© Elektrobit (EB) 2018
Post Build Notifications
Continuous Delivery with Jenkins Pipelines
19© Elektrobit (EB) 2018 19
https://jenkins.io/blog/2018/04/18/blueocean-1-5-0/
https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin
• Latest additions
– Support for sequential parallel stages
– Restartable Stages for declarative pipelines
– Performance improvements
Public roadmap
• https://jenkins.io/projects/blueocean/roadmap/
Blue Ocean 1.8.2 released 16.08.2018
Continuous Delivery with Jenkins Pipelines
20© Elektrobit (EB) 2018 20
Overview
Continuous Delivery with Jenkins Pipelines
21© Elektrobit (EB) 2018 21
Approval
Continuous Delivery with Jenkins Pipelines
22© Elektrobit (EB) 2018 22
Detail
Continuous Delivery with Jenkins Pipelines
23© Elektrobit (EB) 2018 23
Multi branch support
Continuous Delivery with Jenkins Pipelines
24© Elektrobit (EB) 2018 24
Multi branch (When)
Continuous Delivery with Jenkins Pipelines
25© Elektrobit (EB) 2018 25© Elektrobit (EB) 2018 | Confidential
• Blue Ocean Pipeline Editor
• Snippet Generator
• Directive Generator
• Replay Feature
• Shared Libraries
• Auto-Convert Freestyle Jobs to Jenkins Pipeline
• IntelliJ IDEA GDSL – Autocomplete
• Command-line Pipeline Linter
• Jenkins File Runner
• Unit Testing Jenkins Pipelines
Pipeline Development and Advanced Tools
Continuous Delivery with Jenkins Pipelines
26© Elektrobit (EB) 2018
• GitLab currently not supported (planned! https://issues.jenkins-ci.org/browse/JENKINS-43976)
• Workaround: http://localhost:8080/blue/organizations/jenkins/pipeline-editor/
• Ctrl-S / Cmd-S to open the load save dialog
Pipeline Editor
Continuous Delivery with Jenkins Pipelines
27© Elektrobit (EB) 2018
• http://localhost:8080/pipeline-syntax
Snippet generator
Continuous Delivery with Jenkins Pipelines
28© Elektrobit (EB) 2018
• http://localhost:8080/directive-generator/
• https://jenkins.io/blog/2018/04/09/whats-in-declarative/
Declarative generator
Continuous Delivery with Jenkins Pipelines
30© Elektrobit (EB) 2018
• Allows for quick modifications and execution of an existing
(valid!) Pipeline without changing the Pipeline configuration or
creating a new commit.
• Once you are satisfied with the changes, you can use Replay to
view them again, copy them back to your Pipeline job or
Jenkinsfile, and then commit them using your usual engineering
processes
Green sub-title
Replay Feature
Continuous Delivery with Jenkins Pipelines
34© Elektrobit (EB) 2018
Share parts of Pipelines between various projects to reduce
redundancies and keep code "DRY“.
Functions can than be called from Jenkinsfiles.
See
https://jenkins.io/doc/book/pipeline/shared-libraries/
and
https://jenkins.io/blog/2017/10/02/pipeline-templates-with-
shared-libraries/
for more details.
Green sub-title
Shared Libraries
Continuous Delivery with Jenkins Pipelines
36© Elektrobit (EB) 2018
• Missing:
– Support for passing variables between stages in declarative pipelines (see workaround in https://issues.jenkins-ci.org/browse/JENKINS-41335 and
discussion in https://stackoverflow.com/questions/47462500/pass-variables-between-jenkins-stages and
https://stackoverflow.com/questions/43879733/jenkinsfile-declarative-pipeline-defining-dynamic-env-vars/43881731#43881731)
• To Come:
– More editor coverage of declaration syntax
– GitLab read/write support
– For more see https://jenkins.io/projects/blueocean/roadmap/ and https://jenkins.io/blog/2018/08/31/shifting-gears/
Things missing / Things to come
Continuous Delivery with Jenkins Pipelines
37© Elektrobit (EB) 2018
• Website: https://jenkins.io
• Blog: https://jenkins.io/node/
• https://www.slideshare.net/legrimpeur/belgium-jenkins-area-meetup-jenkins-blueocean-and-declarative-pipelines
• Getting Started
• https://jenkins.io/doc/book/getting-started/
• https://jenkins.io/doc/book/pipeline/syntax/
• https://jenkins.io/doc/tutorials/
• https://jenkins.io/doc/pipeline/steps/
• https://jenkins.io/doc/book/blueocean/getting-started/
• https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/getting%20started
• https://jenkins.io/blog/2017/05/18/pipeline-dev-tools/
Further references & information I
Continuous Delivery with Jenkins Pipelines
38© Elektrobit (EB) 2018
Docker Files:
• https://github.com/jenkinsci/docker/blob/master/README.md
• https://hub.docker.com/r/jenkinsci/blueocean/
Further references & information II
Continuous Delivery with Jenkins Pipelines
Roman Pickl (@rompic)
roman.pickl@elektrobit.com
www.elektrobit.com
Get in touch!

More Related Content

What's hot

SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
Ashraf Fouad
 

What's hot (20)

Third-Party Software Library Reuse : From Adoption to Migration
Third-Party Software Library Reuse : From Adoption to MigrationThird-Party Software Library Reuse : From Adoption to Migration
Third-Party Software Library Reuse : From Adoption to Migration
 
Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
A Next-Gen Continuous Integration Solution to Improve Software Delivery
A Next-Gen Continuous Integration Solution to Improve Software DeliveryA Next-Gen Continuous Integration Solution to Improve Software Delivery
A Next-Gen Continuous Integration Solution to Improve Software Delivery
 
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevTriple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
02-version control(DevOps Series)
02-version control(DevOps Series)02-version control(DevOps Series)
02-version control(DevOps Series)
 
DBM專案環境建置
DBM專案環境建置DBM專案環境建置
DBM專案環境建置
 
SVN Basics
SVN BasicsSVN Basics
SVN Basics
 
In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
 
Mavenized RCP
Mavenized RCPMavenized RCP
Mavenized RCP
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopi
 
Subversion Best Practices
Subversion Best PracticesSubversion Best Practices
Subversion Best Practices
 
PAC 2019 virtual Scott Moore
PAC 2019  virtual   Scott Moore PAC 2019  virtual   Scott Moore
PAC 2019 virtual Scott Moore
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
Version Control with Subversion
Version Control with SubversionVersion Control with Subversion
Version Control with Subversion
 

Similar to Continuous delivery with jenkins pipelines @devopsdays cairo

Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
Anuj Sharma
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
VladLica
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 

Similar to Continuous delivery with jenkins pipelines @devopsdays cairo (20)

Continuous delivery with jenkins pipelines (@devfest Vienna)
Continuous delivery with jenkins pipelines (@devfest Vienna)Continuous delivery with jenkins pipelines (@devfest Vienna)
Continuous delivery with jenkins pipelines (@devfest Vienna)
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
 
Basic Jenkins Guide.pptx
Basic Jenkins Guide.pptxBasic Jenkins Guide.pptx
Basic Jenkins Guide.pptx
 
Continuous Integration using Jenkins with Python
Continuous Integration using Jenkins with PythonContinuous Integration using Jenkins with Python
Continuous Integration using Jenkins with Python
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 
Modernize deployment pipeline
Modernize deployment pipelineModernize deployment pipeline
Modernize deployment pipeline
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way down
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 

More from Roman Pickl

More from Roman Pickl (8)

Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work - ...
Are we really moving faster? How visualizing flow changed the way we work -  ...Are we really moving faster? How visualizing flow changed the way we work -  ...
Are we really moving faster? How visualizing flow changed the way we work - ...
 
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in PragueContinuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
 
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
 
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
 
Continuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystemContinuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystem
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Recently uploaded (20)

StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 

Continuous delivery with jenkins pipelines @devopsdays cairo

  • 2. 3© Elektrobit (EB) 2018 3 1. docker run -p 8080:8080 jenkinsci/blueocean (add –p 44444:44444 or any other port to try the ssh linter) 2. Go to http://localhost:8080/ 3. Unlock jenkins with initialpw from log file 4. Install suggested plugins (you may have to continue the process in case any plugins are broken and update plugins later on) 5. Create admin user / or continue with admin and initalpw 6. Open http://localhost:8080/blue/pipelines 7. Generate new Pipeline with Github repository 8. Create Jenkinsfile (e.g. https://github.com/rompic/jenkinspipeline) Demo Continuous Delivery with Jenkins Pipelines
  • 3. 4© Elektrobit (EB) 2018 • Technical Project Manager @ Elektrobit • Uses Jenkins since 2012 • Loves CI/CD/DevOps • Here to learn Roman Pickl (@rompic) How did I end up here? Continuous Delivery with Jenkins Pipelines
  • 4. 5© Elektrobit (EB) 2018 Jez Humble on Continuous Delivery(2012): https://www.youtube.com/watch?v=skLJuksCRTw Automated implementation of your system’s build, deploy, test, release process • Every change results in a build • Every build is a release candidate • Delivery can be done at any time, on any environment  Make releases a non-event Deployment Pipeline provides: • Visibility • Feedback • Control Continuous Delivery (CD) Continuous Delivery with Jenkins Pipelines Read these books if you want to know more!
  • 5. 6© Elektrobit (EB) 2018 Jez Humble D. F., Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation (2010) Deployment Pipelines (Let’s build it with jenkins) Continuous Delivery with Jenkins Pipelines
  • 6. 7© Elektrobit (EB) 2018 http://dduportal.github.io/presentations/mixit-2017-jenkins-pipeline/slides.html#/meet_jenkins https://jenkins.io/blog/2017/04/05/say-hello-blueocean-1-0/ http://stats.jenkins.io/ • Created by Kohsuke Kawaguchi • Initial Release 2005 (Hudson) • Open Source (MIT License) • Active and independent community (https://jenkins.io) • 178,800 active installations • 1,600+ plugins (!) • Since 2.0 Pipelines (April 2016) are first class citizens • Pipeline as Code (Jenkinsfile). • New User Experience “Blue Ocean” with Blue Ocean Pipeline Editor • Blue Ocean 1.8 released in August 2018 #1 Continuous Integration and Delivery Server Jenkins Continuous Delivery with Jenkins Pipelines
  • 7. 8© Elektrobit (EB) 2018 Welcome Blue Ocean! Continuous Delivery with Jenkins Pipelines
  • 8. 9© Elektrobit (EB) 2018 4.Choose a repository 3. Choose organization 2. Provide access key 1. Type of source control Create a Pipeline Wizard Continuous Delivery with Jenkins Pipelines
  • 9. 10© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/jenkinsfile/ Written in a Groovy DSL “Jenkinsfile” in top level folder (different path possible since June 2017 https://issues.jenkins-ci.org/browse/JENKINS-34561) Store in SCM (e.g. GIT) for additional benefits • Code review/iteration • Audit trail • Single source of truth Supports two syntaxes (can be mixed) • Declarative pipelines (easier; “new”; 1.0 Feb 2017) • Scripted pipelines (more powerful) Jenkinsfile Continuous Delivery with Jenkins Pipelines
  • 10. 11© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/syntax/ Declarative PipelineScripted Pipelines Continuous Delivery with Jenkins Pipelines Scripted vs. Declarative
  • 11. 12© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/syntax/ Declarative PipelineScripted Pipelines Continuous Delivery with Jenkins Pipelines Scripted vs. Declarative • imperative programming model • fully featured programming environment, • higher flexibility and extensibility • very few limits  for power-users and more complex requirements • declarative programming model • simpler and more opinionated syntax for authoring Jenkins Pipeline. • Allows for validation and a visual editor • limits what is available to the user  ideal choice for simpler continuous delivery pipelines Both • use Groovy • same Pipeline sub-system underneath • mostly use same steps • able to utilize Shared Libraries  can be mixed using the script step See https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/ for a more complex example of migrating a freestyle job to a declarative/scripted pipeline.
  • 12. 13© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/syntax/ • takes a block of Scripted Pipeline & executes that in the Declarative Pipeline • can provide a useful "escape hatch". • script blocks of non-trivial size and/or complexity should be moved into Shared Libraries script Step Continuous Delivery with Jenkins Pipelines
  • 13. 14© Elektrobit (EB) 2018 Settings Continuous Delivery with Jenkins Pipelines
  • 14. 15© Elektrobit (EB) 2018 Stages Continuous Delivery with Jenkins Pipelines
  • 15. 16© Elektrobit (EB) 2018 Parallel Execution Continuous Delivery with Jenkins Pipelines Declarative 1.3 (released 14.06.2018) allows you to add multiple “sequential” stages in the same parallel branch. See https://www.cloudbees.com/blog/whats-new-declarative-pipeline- 13-sequential-stages
  • 16. 17© Elektrobit (EB) 2018 Approval Continuous Delivery with Jenkins Pipelines Deploy to Live / Release omitted here
  • 17. 18© Elektrobit (EB) 2018 Post Build Notifications Continuous Delivery with Jenkins Pipelines
  • 18. 19© Elektrobit (EB) 2018 19 https://jenkins.io/blog/2018/04/18/blueocean-1-5-0/ https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin • Latest additions – Support for sequential parallel stages – Restartable Stages for declarative pipelines – Performance improvements Public roadmap • https://jenkins.io/projects/blueocean/roadmap/ Blue Ocean 1.8.2 released 16.08.2018 Continuous Delivery with Jenkins Pipelines
  • 19. 20© Elektrobit (EB) 2018 20 Overview Continuous Delivery with Jenkins Pipelines
  • 20. 21© Elektrobit (EB) 2018 21 Approval Continuous Delivery with Jenkins Pipelines
  • 21. 22© Elektrobit (EB) 2018 22 Detail Continuous Delivery with Jenkins Pipelines
  • 22. 23© Elektrobit (EB) 2018 23 Multi branch support Continuous Delivery with Jenkins Pipelines
  • 23. 24© Elektrobit (EB) 2018 24 Multi branch (When) Continuous Delivery with Jenkins Pipelines
  • 24. 25© Elektrobit (EB) 2018 25© Elektrobit (EB) 2018 | Confidential • Blue Ocean Pipeline Editor • Snippet Generator • Directive Generator • Replay Feature • Shared Libraries • Auto-Convert Freestyle Jobs to Jenkins Pipeline • IntelliJ IDEA GDSL – Autocomplete • Command-line Pipeline Linter • Jenkins File Runner • Unit Testing Jenkins Pipelines Pipeline Development and Advanced Tools Continuous Delivery with Jenkins Pipelines
  • 25. 26© Elektrobit (EB) 2018 • GitLab currently not supported (planned! https://issues.jenkins-ci.org/browse/JENKINS-43976) • Workaround: http://localhost:8080/blue/organizations/jenkins/pipeline-editor/ • Ctrl-S / Cmd-S to open the load save dialog Pipeline Editor Continuous Delivery with Jenkins Pipelines
  • 26. 27© Elektrobit (EB) 2018 • http://localhost:8080/pipeline-syntax Snippet generator Continuous Delivery with Jenkins Pipelines
  • 27. 28© Elektrobit (EB) 2018 • http://localhost:8080/directive-generator/ • https://jenkins.io/blog/2018/04/09/whats-in-declarative/ Declarative generator Continuous Delivery with Jenkins Pipelines
  • 28. 30© Elektrobit (EB) 2018 • Allows for quick modifications and execution of an existing (valid!) Pipeline without changing the Pipeline configuration or creating a new commit. • Once you are satisfied with the changes, you can use Replay to view them again, copy them back to your Pipeline job or Jenkinsfile, and then commit them using your usual engineering processes Green sub-title Replay Feature Continuous Delivery with Jenkins Pipelines
  • 29. 34© Elektrobit (EB) 2018 Share parts of Pipelines between various projects to reduce redundancies and keep code "DRY“. Functions can than be called from Jenkinsfiles. See https://jenkins.io/doc/book/pipeline/shared-libraries/ and https://jenkins.io/blog/2017/10/02/pipeline-templates-with- shared-libraries/ for more details. Green sub-title Shared Libraries Continuous Delivery with Jenkins Pipelines
  • 30. 36© Elektrobit (EB) 2018 • Missing: – Support for passing variables between stages in declarative pipelines (see workaround in https://issues.jenkins-ci.org/browse/JENKINS-41335 and discussion in https://stackoverflow.com/questions/47462500/pass-variables-between-jenkins-stages and https://stackoverflow.com/questions/43879733/jenkinsfile-declarative-pipeline-defining-dynamic-env-vars/43881731#43881731) • To Come: – More editor coverage of declaration syntax – GitLab read/write support – For more see https://jenkins.io/projects/blueocean/roadmap/ and https://jenkins.io/blog/2018/08/31/shifting-gears/ Things missing / Things to come Continuous Delivery with Jenkins Pipelines
  • 31. 37© Elektrobit (EB) 2018 • Website: https://jenkins.io • Blog: https://jenkins.io/node/ • https://www.slideshare.net/legrimpeur/belgium-jenkins-area-meetup-jenkins-blueocean-and-declarative-pipelines • Getting Started • https://jenkins.io/doc/book/getting-started/ • https://jenkins.io/doc/book/pipeline/syntax/ • https://jenkins.io/doc/tutorials/ • https://jenkins.io/doc/pipeline/steps/ • https://jenkins.io/doc/book/blueocean/getting-started/ • https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/getting%20started • https://jenkins.io/blog/2017/05/18/pipeline-dev-tools/ Further references & information I Continuous Delivery with Jenkins Pipelines
  • 32. 38© Elektrobit (EB) 2018 Docker Files: • https://github.com/jenkinsci/docker/blob/master/README.md • https://hub.docker.com/r/jenkinsci/blueocean/ Further references & information II Continuous Delivery with Jenkins Pipelines