SlideShare a Scribd company logo
23.05.2018
Roman Pickl
Continuous Delivery with Jenkins
Pipelines (incl. Advanced Topics)
join at Slido.com with #K100
2© Elektrobit (EB) 2018 2
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 (incl. Advanced Topics)
3© Elektrobit (EB) 2018
• Technical Project Manager @ Elektrobit
• In charge of EB Assist Busmirror
• 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 (incl. Advanced Topics)
4© 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 (incl. Advanced Topics)
Read these books
if you want to
know more!
5© 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 (incl. Advanced Topics)
6© 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)
• 164,000 active installations
• 1,500+ 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.5 released in April 2018
#1 Continuous Integration and Delivery Server
Jenkins
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
7© Elektrobit (EB) 2018
Welcome Blue Ocean!
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
8© 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 (incl. Advanced Topics)
9© 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 (incl. Advanced Topics)
10© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/syntax/
Declarative PipelineScripted Pipelines
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
Scripted vs. Declarative
11© Elektrobit (EB) 2018
https://jenkins.io/doc/book/pipeline/syntax/
Declarative PipelineScripted Pipelines
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
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
S ee 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© 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 (incl. Advanced Topics)
13© Elektrobit (EB) 2018
Settings
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
14© Elektrobit (EB) 2018
Stages
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
15© Elektrobit (EB) 2018
Parallel Execution
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
16© Elektrobit (EB) 2018
Approval
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
Deploy to Live / Release omitted here
17© Elektrobit (EB) 2018
Post Build Notifications
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
18© Elektrobit (EB) 2018 18
https://jenkins.io/blog/2018/04/18/blueocean-1-5-0/
https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin
• Latest additions
– Show the downstream jobs launched with the build step
– Reorder steps In pipeline editor by drag and drop
– Pagination of artifacts page
Public roadmap
• https://jenkins.io/projects/blueocean/roadmap/
Blue Ocean 1.5 released 11.04.2018
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
19© Elektrobit (EB) 2018 19
Overview
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
20© Elektrobit (EB) 2018 20
Approval
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
21© Elektrobit (EB) 2018 21
Detail
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
22© Elektrobit (EB) 2018 22
Multi branch support
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
23© Elektrobit (EB) 2018 23
Multi branch (When)
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
24© Elektrobit (EB) 2018 24© Elektrobit (EB) 2018 | Confidential
• Blue Ocean Pipeline Editor
• Snippet Generator
• Directive Generator (*NEW*)
• Auto-Convert Freestyle Jobs to Jenkins Pipeline
• Replay Feature
• IntelliJ IDEA GDSL – Autocomplete
• Command-line Pipeline Linter
• Jenkins File Runner (*NEW*)
• Unit Testing Jenkins Pipelines
• Shared Libaries
Pipeline Development and Advanced Tools
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
25© 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 (incl. Advanced Topics)
26© Elektrobit (EB) 2018
• http://localhost:8080/pipeline-syntax
Snippet generator
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
27© 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 (incl. Advanced Topics)
28© Elektrobit (EB) 2018
Plugin to automatically convert Freestyle Jobs to Jenkins Pipeline
https://jenkins.io/blog/2017/12/15/auto-convert-freestyle-jenkins-jobs-to-coded-pipeline/
https://wiki.jenkins.io/display/JENKINS/Convert+To+Pipeline+Plugin
Auto-Convert Freestyle Jobs to Jenkins Pipeline
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
29© 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 (incl. Advanced Topics)
30© Elektrobit (EB) 2018
See
https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
https://stackoverflow.com/questions/41062514/use-gdsl-file-in-a-java-project-in-intellij
https://stackoverflow.com/a/41149255/3165782
for setting it up.
• Auto completion of steps for scripted pipelines
• Install Groovy Plugin
• Download http://localhost:8080/pipeline-syntax/gdsl
• Add it as e.g. pipeline.gdsl to your projects src path
Green sub-title
IntelliJ IDEA GDSL - Autocomplete
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
31© Elektrobit (EB) 2018
Validate Declarative Pipelines from the cli before actually running it/checking it in.
See https://jenkins.io/doc/book/pipeline/development/#linter for details. Remember to enable SSH access, expose a port on your
docker container and add ssh key to try this!
Command-line Pipeline Linter
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
32© Elektrobit (EB) 2018
https://github.com/ndeloof/jenkinsfile-runner
Experiment to package Jenkins pipeline execution as a command
line tool.
Use cases include:
• Assist editing and testing Jenkinsfile locally
• Use Jenkins in Function-as-a-Service context
• Integration test shared libraries
• downloads latest Jenkins LTS
• installs plugins as defined by a plugins.txt file
• setup .jenkinsfile-runner directory
• runs Jenkins master headless
• run a single job based on a local Jenkinsfile, then shutdown on
completion.
So i guess we can run now run a job in jenkins which downloads jenkins to run a jenkins job …
jenkinsfile-runner
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
33© 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 (incl. Advanced Topics)
34© Elektrobit (EB) 2018 34© Elektrobit (EB) 2018 | Confidential
• Allows to unit test Pipelines and Shared Libraries before running them in full
• Provides a mock execution environment that can be used to check for expected behavior
• Still quite rough around the edges. (e.g. no support for declarative pipeline yet
https://github.com/lesfurets/JenkinsPipelineUnit/pull/13)
• See:
• https://github.com/lesfurets/JenkinsPipelineUnit
• https://github.com/lesfurets/JenkinsPipelineUnit/blob/master/README.md
• https://issues.jenkins-ci.org/browse/JENKINS-33925
Unit Testing Jenkins Pipelines
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
35© Elektrobit (EB) 2018
• Missing:
– Support for definition of variables in declarative pipelines (see workaround in https://issues.jenkins-ci.org/browse/JENKINS-41335)
– Keep build forever (https://issues.jenkins-ci.org/browse/JENKINS-39028; workaround via shared lib, change to be released)
– Restart stages for pipelines (checkpoint as commercial feature, https://issues.jenkins-ci.org/browse/JENKINS-33846 ; feature for declarative pipelines
planned: https://issues.jenkins-ci.org/browse/JENKINS-45455)
• To Come:
– More editor coverage of declaration syntax
– GitLab read/write support
– Jenkins Essentials
– Project Cheetah https://jenkins.io/blog/2018/02/22/cheetah/
– For more see https://jenkins.io/projects/blueocean/roadmap/
Things missing / Things to come
Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
36© 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 (incl. Advanced Topics)
37© 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 (incl. Advanced Topics)
Roman Pickl (@rompic)
roman.pickl@elektrobit.com
www.elektrobit.com
Get in touch!

More Related Content

What's hot

Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Slawa Giterman
 
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
Steffen Gebert
 
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Oleg Nenashev
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
ericlongtx
 
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & DeployOPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
Natale Vinto
 
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Nikhil Thomas
 
Kubernetes for java developers
Kubernetes for java developersKubernetes for java developers
Kubernetes for java developers
Sandro Giacomozzi
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
alexanderkiel
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Jorge Morales
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
Howard Greenberg
 
How to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releasesHow to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releases
Amit Gupta
 
Continuous Delivery - Pipeline as-code
Continuous Delivery - Pipeline as-codeContinuous Delivery - Pipeline as-code
Continuous Delivery - Pipeline as-code
Mike van Vendeloo
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
Mayank Patel
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Damien Duportal
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
 
February OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for NewbiesFebruary OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for Newbies
Howard Greenberg
 
Javaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with JenkinsJavaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with Jenkins
Andy Pemberton
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
Jadson Santos
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
Julien Pivotto
 

What's hot (20)

Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
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
 
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
 
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & DeployOPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
 
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton PipelinesCloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
 
Kubernetes for java developers
Kubernetes for java developersKubernetes for java developers
Kubernetes for java developers
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
 
How to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releasesHow to use Concourse CI to deliver BOSH releases
How to use Concourse CI to deliver BOSH releases
 
Continuous Delivery - Pipeline as-code
Continuous Delivery - Pipeline as-codeContinuous Delivery - Pipeline as-code
Continuous Delivery - Pipeline as-code
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
 
February OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for NewbiesFebruary OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for Newbies
 
Javaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with JenkinsJavaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with Jenkins
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
 
Building Jenkins Pipelines at Scale
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
 

Similar to Continuous delivery with jenkins pipelines @ devdays

Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
Roman Pickl
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
Roman Pickl
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Alvin Huang
 
Basic Jenkins Guide.pptx
Basic Jenkins Guide.pptxBasic Jenkins Guide.pptx
Basic Jenkins Guide.pptx
Jayanga V. Liyanage
 
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
Brian Dawson
 
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
Satish Prasad
 
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
Steve Mactaggart
 
Continuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket PipelinesContinuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket Pipelines
Atlassian
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
Steffen Gebert
 
Efficient Parallel Testing with Docker
Efficient Parallel Testing with DockerEfficient Parallel Testing with Docker
Efficient Parallel Testing with Docker
Laura Frank Tacho
 
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 &...
Roman Pickl
 
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
Michal Ziarnik
 
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
Bert Koorengevel
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
ciberkleid
 
Continuous Integration using Jenkins with Python
Continuous Integration using Jenkins with PythonContinuous Integration using Jenkins with Python
Continuous Integration using Jenkins with Python
Inexture Solutions
 
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
Yoshitake Kobayashi
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
VMware Tanzu
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using Spinnaker
WSO2
 
Cloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative PipelinesCloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative Pipelines
C4Media
 

Similar to Continuous delivery with jenkins pipelines @ devdays (20)

Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
Basic Jenkins Guide.pptx
Basic Jenkins Guide.pptxBasic Jenkins Guide.pptx
Basic Jenkins Guide.pptx
 
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
 
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
 
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
 
Continuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket PipelinesContinuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket Pipelines
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Efficient Parallel Testing with Docker
Efficient Parallel Testing with DockerEfficient Parallel Testing with Docker
Efficient Parallel Testing with Docker
 
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 &...
 
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
 
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
 
Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5Continuous Deployment of your Application @jSession#5
Continuous Deployment of your Application @jSession#5
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Continuous Integration using Jenkins with Python
Continuous Integration using Jenkins with PythonContinuous Integration using Jenkins with Python
Continuous Integration using Jenkins with Python
 
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
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using Spinnaker
 
Cloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative PipelinesCloud Native CI/CD with Jenkins X and Knative Pipelines
Cloud Native CI/CD with Jenkins X and Knative Pipelines
 

More from Roman Pickl

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
Roman Pickl
 
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
Roman Pickl
 
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
Roman Pickl
 
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 - ...
Roman Pickl
 
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
Roman Pickl
 
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
Roman Pickl
 

More from Roman Pickl (6)

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 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

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Luigi Fugaro
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 

Recently uploaded (20)

Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 

Continuous delivery with jenkins pipelines @ devdays

  • 1. 23.05.2018 Roman Pickl Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics) join at Slido.com with #K100
  • 2. 2© Elektrobit (EB) 2018 2 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 (incl. Advanced Topics)
  • 3. 3© Elektrobit (EB) 2018 • Technical Project Manager @ Elektrobit • In charge of EB Assist Busmirror • 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 (incl. Advanced Topics)
  • 4. 4© 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 (incl. Advanced Topics) Read these books if you want to know more!
  • 5. 5© 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 (incl. Advanced Topics)
  • 6. 6© 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) • 164,000 active installations • 1,500+ 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.5 released in April 2018 #1 Continuous Integration and Delivery Server Jenkins Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 7. 7© Elektrobit (EB) 2018 Welcome Blue Ocean! Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 8. 8© 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 (incl. Advanced Topics)
  • 9. 9© 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 (incl. Advanced Topics)
  • 10. 10© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/syntax/ Declarative PipelineScripted Pipelines Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics) Scripted vs. Declarative
  • 11. 11© Elektrobit (EB) 2018 https://jenkins.io/doc/book/pipeline/syntax/ Declarative PipelineScripted Pipelines Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics) 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 S ee 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. 12© 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 (incl. Advanced Topics)
  • 13. 13© Elektrobit (EB) 2018 Settings Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 14. 14© Elektrobit (EB) 2018 Stages Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 15. 15© Elektrobit (EB) 2018 Parallel Execution Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 16. 16© Elektrobit (EB) 2018 Approval Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics) Deploy to Live / Release omitted here
  • 17. 17© Elektrobit (EB) 2018 Post Build Notifications Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 18. 18© Elektrobit (EB) 2018 18 https://jenkins.io/blog/2018/04/18/blueocean-1-5-0/ https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin • Latest additions – Show the downstream jobs launched with the build step – Reorder steps In pipeline editor by drag and drop – Pagination of artifacts page Public roadmap • https://jenkins.io/projects/blueocean/roadmap/ Blue Ocean 1.5 released 11.04.2018 Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 19. 19© Elektrobit (EB) 2018 19 Overview Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 20. 20© Elektrobit (EB) 2018 20 Approval Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 21. 21© Elektrobit (EB) 2018 21 Detail Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 22. 22© Elektrobit (EB) 2018 22 Multi branch support Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 23. 23© Elektrobit (EB) 2018 23 Multi branch (When) Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 24. 24© Elektrobit (EB) 2018 24© Elektrobit (EB) 2018 | Confidential • Blue Ocean Pipeline Editor • Snippet Generator • Directive Generator (*NEW*) • Auto-Convert Freestyle Jobs to Jenkins Pipeline • Replay Feature • IntelliJ IDEA GDSL – Autocomplete • Command-line Pipeline Linter • Jenkins File Runner (*NEW*) • Unit Testing Jenkins Pipelines • Shared Libaries Pipeline Development and Advanced Tools Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 25. 25© 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 (incl. Advanced Topics)
  • 26. 26© Elektrobit (EB) 2018 • http://localhost:8080/pipeline-syntax Snippet generator Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 27. 27© 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 (incl. Advanced Topics)
  • 28. 28© Elektrobit (EB) 2018 Plugin to automatically convert Freestyle Jobs to Jenkins Pipeline https://jenkins.io/blog/2017/12/15/auto-convert-freestyle-jenkins-jobs-to-coded-pipeline/ https://wiki.jenkins.io/display/JENKINS/Convert+To+Pipeline+Plugin Auto-Convert Freestyle Jobs to Jenkins Pipeline Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 29. 29© 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 (incl. Advanced Topics)
  • 30. 30© Elektrobit (EB) 2018 See https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij https://stackoverflow.com/questions/41062514/use-gdsl-file-in-a-java-project-in-intellij https://stackoverflow.com/a/41149255/3165782 for setting it up. • Auto completion of steps for scripted pipelines • Install Groovy Plugin • Download http://localhost:8080/pipeline-syntax/gdsl • Add it as e.g. pipeline.gdsl to your projects src path Green sub-title IntelliJ IDEA GDSL - Autocomplete Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 31. 31© Elektrobit (EB) 2018 Validate Declarative Pipelines from the cli before actually running it/checking it in. See https://jenkins.io/doc/book/pipeline/development/#linter for details. Remember to enable SSH access, expose a port on your docker container and add ssh key to try this! Command-line Pipeline Linter Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 32. 32© Elektrobit (EB) 2018 https://github.com/ndeloof/jenkinsfile-runner Experiment to package Jenkins pipeline execution as a command line tool. Use cases include: • Assist editing and testing Jenkinsfile locally • Use Jenkins in Function-as-a-Service context • Integration test shared libraries • downloads latest Jenkins LTS • installs plugins as defined by a plugins.txt file • setup .jenkinsfile-runner directory • runs Jenkins master headless • run a single job based on a local Jenkinsfile, then shutdown on completion. So i guess we can run now run a job in jenkins which downloads jenkins to run a jenkins job … jenkinsfile-runner Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 33. 33© 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 (incl. Advanced Topics)
  • 34. 34© Elektrobit (EB) 2018 34© Elektrobit (EB) 2018 | Confidential • Allows to unit test Pipelines and Shared Libraries before running them in full • Provides a mock execution environment that can be used to check for expected behavior • Still quite rough around the edges. (e.g. no support for declarative pipeline yet https://github.com/lesfurets/JenkinsPipelineUnit/pull/13) • See: • https://github.com/lesfurets/JenkinsPipelineUnit • https://github.com/lesfurets/JenkinsPipelineUnit/blob/master/README.md • https://issues.jenkins-ci.org/browse/JENKINS-33925 Unit Testing Jenkins Pipelines Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 35. 35© Elektrobit (EB) 2018 • Missing: – Support for definition of variables in declarative pipelines (see workaround in https://issues.jenkins-ci.org/browse/JENKINS-41335) – Keep build forever (https://issues.jenkins-ci.org/browse/JENKINS-39028; workaround via shared lib, change to be released) – Restart stages for pipelines (checkpoint as commercial feature, https://issues.jenkins-ci.org/browse/JENKINS-33846 ; feature for declarative pipelines planned: https://issues.jenkins-ci.org/browse/JENKINS-45455) • To Come: – More editor coverage of declaration syntax – GitLab read/write support – Jenkins Essentials – Project Cheetah https://jenkins.io/blog/2018/02/22/cheetah/ – For more see https://jenkins.io/projects/blueocean/roadmap/ Things missing / Things to come Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics)
  • 36. 36© 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 (incl. Advanced Topics)
  • 37. 37© 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 (incl. Advanced Topics)