3.95 out of 5
44 reviews on Udemy

DevOps: CI/CD with Jenkins using Pipelines:Complete Tutorial

Fast-track your continuous integration and continuous delivery process with Jenkins
Packt Publishing
325 students enrolled
English [Auto-generated]
Master the art of Jenkins management like adding a build node, security and plugin management
Work with automated builds of Jenkins like freestyle project, Git, scheduled builds, and up/downstream jobs
Get exposed to the key concepts of DevOps and continuous delivery pipeline
Work with Docker containers in a Jenkins context
Configure Jenkins effectively to build, test, and deploy your software using JenkinsFile
Understand Agile tests and implement them in the delivery process
Implement an effective branching strategy with continuous feedback on feature branches

Jenkins is the most popular and leading open-source automation server for continuous integration and continuous delivery because of its flexibility due to which you can easily use to automate all the steps in your software delivery process on any platform.

This comprehensive 3-in-1 course is designed to give you the ins and out of continuous integration and continuous delivery, and implementing them with Jenkins. It will show you how to set up your CI environment, by installing and configuring Jenkins master/nodes, introducing the main parts of the tool, and effectively configuring Jenkins projects to build and test software applications. You will work on improving the quality of your delivery process by implementing an acceptance stage in workflows. You will explore how automation works for database scripts by adding a new stage to your pipeline for database migration. You will move towards improving the quality of your software development workflow by integrating Jenkins with GitHub to automatically build pull requests.

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Effective Jenkins: Getting Started with Continuous Integration, covers key concepts of continuous integration, as well continuous deployment. You will understand the main parts of Jenkins and create different types of Jenkins projects to automate everything that you want. You will finish the first course by looking at a Java web project and creating the necessary steps to build and test it, thereby empowering you to implement it in a real project.

The second course, Effective Jenkins: Continuous Delivery with Jenkins Pipeline, covers key concepts of DevOps and delve into Jenkins Pipeline, a set of plugins that provides a toolkit for designing simple-to-complex delivery pipelines as code. To design a production-ready delivery pipeline, you will start by creating a simple pipeline and understanding Jenkins Pipeline terms and its particularities. Next, you will set up Docker to create isolated build environments. To consolidate your learning, you will create a delivery pipeline to build, test, and deploy a Java web project.

In the third course, Effective Jenkins: Improving Quality in the Delivery Pipeline with Jenkins, you will improve the quality in your delivery process by implementing an acceptance stage in workflows wherein you will learn different test types and add automated API and UI tests to the pipeline. You will then understand how to automate the execution of database scripts and add a new stage to your pipeline to manage database migrations. You will also learn about branching strategies and how to implement continuous feedback on every feature branch using Jenkins multi-branch. Finally, you will improve the quality of your software development workflows and learn how to integrate Jenkins with GitHub to automatically build pull requests.

By the end of this Learning Path, you’ll be thoroughly equipped with the concepts of Jenkins and will be able to configure Jenkins effectively to build, test, and deploy your software.

Meet Your Expert(s):

We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:

  • Rodrigo Zacheu Russo is a Certified Jenkins Engineer and has 14+ years of experience in software development with different programming languages and technologies in different countries (Brazil, US, Portugal, Germany, and Austria) and projects in companies ranging from a financial institution to game and e-commerce ventures including Goodgame Studios, and HERE. He is an enthusiastic practitioner of Agile methodologies, Continuous Delivery, and DevOps, with large-scale adoption experience. He is always seeking to optimize the software development lifecycle through automation, process improvements, and developing new tools and techniques. Rodrigo holds a B.S. in Computer Science and a post-graduate degree in Software Engineering.

Effective Jenkins: Getting Started with Continuous Integration

The Course Overview

This video provides an overview of the entire course.

Mastering on Continuous Integration

In this video, we will understand what Continuous Integration is  and why it is important, see its key practices and how to practice it  when you change the source code of our application.

  • What is Continuous Integration?

  • Understand the key practices of Continuous Integration

  • Understand a workflow of changing code practicing Continuous Integration

Understanding the Continuous Delivery Concepts

This video aims to explain what is Continuous Delivery, its fundamentals and the Deployment pipeline.

  • What is Continuous Delivery?

  • Understand the pillars of Continuous Delivery

  • Understand the Deployment pipeline

Continuous Delivery Versus Continuous Deployment

This video will explain the differences between Continuous Delivery and Continuous Deployment.

  • Introduction to the software release process

  • Understand Continuous Deployment

  • Understand the difference between Continuous Delivery and Continuous Deployment

CI, CD, and Continuous Deployment?

In this video, we will expand the differences between CI, CD and Continuous Deployment in the software development life cycle.

  • Explain the boundaries of each practice

  • Define the journey among these practices

Introducing Jenkins 2

In this video, we will understand what is Jenkins and its architecture.

  • What is Jenkins and for what can I use it?

  • Understand the Jenkins architecture

Installing and Configuring Jenkins

In this video, we are going to create a virtual machine with Linux and install Jenkins step-by-step.

  • Prepare our isolated environment with vagrant and VirtualBox

  • Install and configure Jenkins to start creating the projects

Jenkins Dashboard

In this video, we are going to create our first Jenkins project and understand the key elements of the Jenkins Dashboard.

  • Create the first Jenkins project, schedule a build and understand the project interface elements

  • Understand the Jenkins Dashboard and its elements

Jenkins Global Configuration

In this video, we will understand the Jenkins global  configuration, the place where you can define global setting to all  Jenkins projects.

  • Understand the Jenkins global settings

  • Explore the Jenkins global tool configuration and install a JDK

Jenkins Security

In this video we will learn how to deal with it on Jenkins. Security is essential to control the users and its permission.

  • Understand the Jenkins Realm, responsible for user authentication and add a new user

  • Explore the authorization strategy by configuring the matrix-base security

  • Grant permissions to the users

Jenkins Plugin Management

In this video, Jenkins is heavily based on plugins, it can  integrate with thousands of tools and services from the plugins, and we  are going to see how to do it. 

  • Explore the Jenkins Plugin management view 

  • See updates, available and installed plugins

  • Explore the advanced tab of plugins

Adding a Build Node

This video will focus on How to add and configure Jenkins build nodes?

  • Create ssh-key for the Jenkins user in the Jenkins Master machine and configure Jenkins credentials

  • Create a new virtual machine and configure ssh access

  • Configure Jenkins and the project to use the new build node

Jenkins Projects

In this video, Jenkins has different types of projects or jobs and we are going to explore the difference between then.

  • Copy existing Jenkins projects and create new ones on different type of projects

Freestyle Projects – Scheduled Builds

In this video we are going so explore how Jenkins deal with that  and how to define a retention policy to keep the relevant builds.

  • Configure a project to trigger a build automatically based on a schedule

  • Configure a project to trigger a build automatically in a specific date and time

  • Configure the Jenkins retention policy

Freestyle Projects – Sending E-mail Notifications

In this video we configure Jenkins to send e-mail notification on broken and fixed builds.

  • Setup the SMTP server on the Jenkins global configuration.

  • Configure the project/job to send e-mail notification on broken builds

  • Configure the project/job to send e-mail notification on fixed builds

Working with Git SCM

In this video, Part of the CI foundations is to maintain a single  source repository. This video you explain how to integrate Jenkins with  Github to use git repositories.

  • Create a git repository on Github

  • Integrate Jenkins with Github

Introduction to a Java Web Project

This video will introduce the Sprint PetClinic, an open source  sample project to be used in the next videos. Nothing better than using a  sample project to understand how Jenkins works with a real life  project.

  • Introduction to Spring PetClinic project

  • Build the project locally

  • Install maven on Jenkins and create a job to build the PetClinic project

Upstream and Downstream Projects

In this video, Using the java web project, we are going to create a  CI build pipeline in Jenkins based on Upstream and Downstream jobs.

  • Create a CI build pipeline

  • Configure the initial job in the pipeline to trigger on every change in the source code.

Visualizing the Status of the Builds

This Video will show you two different possibilities to give  enough visibility of the status of the builds for the development team.  Visualizing the state of the mainline build is essential to practice  continuous integration and get people embracing it.

  • Install the build pipeline plugin

  • Install the build monitor plugin

Test your knowledge

Effective Jenkins: Continuous Delivery with Jenkins Pipeline

The Course Overview

This video provides an overview of the entire course.

Understanding DevOps

DevOps has innumerous definitions, in this video we will clarify how the DevOps concept came to live and define the term.

  • Understand why the DevOps concept has been created

  • Define what is DevOps

Converging to a Delivery Pipeline

When we talk about DevOps, collaboration is a key point. To  support the DevOps culture, in this video, we will learn about the  Delivery pipeline to support all people involved in the delivery process  to easily visualize the stages to deploy a new change in the software.

  • Understand the continuous delivery pipeline

  • Understand a typical delivery pipeline

Introduction to Jenkins Pipeline

For a long time, Jenkins has had a default interaction model the  web UI, but together with CI practices, Jenkins creator has understood  that the delivery pipeline should be part of the source code. In this  video we will give an introduction of this new feature. 

  • Review the default Jenkins interaction model and its disadvantages

  • Introduce the CI as Code concept through Jenkins pipeline and its advantages

Reviewing the Jenkins Plugins

To start using Jenkins pipeline we need to install some required  plugins. In this video, we will install the necessary plugins to start  writing Jenkins Pipelines.

  • Verify the necessary list of plugins and install using Jenkins

  • Verify the installation by creating a new Jenkins Pipeline project

My First Pipeline

In this video, we will understand the scripted pipeline, a  flexible and powerful way to start creating pipelines in groovy on  Jenkins.

  • Introduce the scripted pipeline

  • Introduce the Jenkins Project 

  • Create a pipeline with Jenkins Pipeline

Scripted Pipeline Steps

In this video, we will explore the most common step in a Jenkins  pipeline and see how we can handle password on Jenkins pipeline to do  not expose it to the users.

  • Explore the most common steps in the pipeline

  • Learn how to use the hidden password

Finishing up the Build

Life is not a bed of roses, and with Jenkins it’s not different.  In this video, we will understand how we can handle error during the  pipeline execution and add post build steps.

  • Handle error in the scripted pipeline

  • Add a post build step

  • Explore notification system with Jenkins pipeline

Understanding the Declarative Pipeline

Jenkins pipeline can be written in two ways, declarative and  scripted. In this video, we will understand the declarative pipeline  syntax and its nuances.

  • Learn what a declarative pipeline is

  • Understand Sections, Directives and Steps

  • Learn how to use scripts inside a declarative pipeline

Understanding the JenkinsFile

CI as code can be accomplished via the JenkinsFile, a way of  keeping the logic of your pipeline stored at the same repository as the  application that you are build. This video will explain how this is  possible with Jenkins.

  • Learn what the JenkinsFile is

  • Understand how the pipeline works with JenkinsFile

Creating and Configuring the JenkinsFile

In this video, we will create a JenkinsFile and commit it together  with a java project and create a pipeline project on Jenkins to run the  pipeline from this file.

  • Create a JenkinsFile and prepare a Jenkins pipeline project to use it

  • Improve the JenkinsFile to checkout, build, and test and package the application

Introduction to Docker

Docker is a well-known technology widely used today. In this  video, we will briefly explain what Docker is and how it can support the  CI environment.

  • Understand the basics of Docker

  • Learn how Docker can help on CI environment

Installing Docker on the Jenkins Node Server

To run Docker on Jenkins nodes we need first to install the Docker  platform to start building the application with containers. This video  will explain how to prepare the Jenkins machine for that.   

  • Install Docker on a Linux Jenkins node machine

  • Create a Jenkins job to test the Docker installation

Finding out to Use Docker with Jenkins Pipeline

To have isolated and reproducible environments, Docker is the  right tool to enable developers and the CI system to achieve it. In this  video, we will see how to use Docker containers from Jenkins pipeline.

  • Introduction to the Docker Hub

  • Use one Docker container for the pipeline

  • Use one Docker container per stage

Introduction to the Java Web Project

To effectively apply the techniques learnt in this course, we will  learn the Spring PetClinic project - a Java web project that we will  create to deploy to a production-like environment.

  • Introduce the Spring PetClinic Project

  • Create a Continuous delivery pipeline on Jenkins

Archiving Artefacts and Fingerprints

Traceability is an important topic for DevOps teams, who need to  be able to trace code from commit to deployment. In this video, we will  understand how Jenkins can help us with that.

  • Understand what is Jenkins fingerprinting

  • Archive an artefact

Deploying Our Java Web Project

In this video, we will create an approval gate and a stage to deploy the project onto a production-like environment.

  • Implement an approval gate in the pipeline requesting a human input

  • Learn how to deploy our Java web project

Test your knowledge

Effective Jenkins: Improving Quality in the Delivery Pipeline with Jenkins

The Course Overview

This video provides an overview of the entire course.

Introduction to Agile Tests

In this video, we will understand the Agile testing quadrants and  how it impacts in the software development workflow based on Continuous  Delivery.                         

  • Understand what the Agile testing quadrants are

  • Understand each Agile testing quadrant

Agile Tests in the Continuous Delivery World

In this video, we will extend our knowledge of tests from  Continuous Delivery point of view, by understanding why tests are  crucial to practice CD.                         

  • Run automated tests on CI/CD

  • Understand the automated testing pyramid

Running Integration Tests

In this video, we will bring the theory to practice, by using a  Java project to add tests, configure the build system and Jenkins to run  and export the tests results on each execution of the build pipeline.                         

  • Understand a Java project to be used to run tests

  • Create the Jenkins build pipeline

  • Show test results on Jenkins

Adding a Quality Gate to the Build Pipeline

In this video, we will add JaCoCo to the build system to  understand the code coverage and add a quality gate on Jenkins by  defining a threshold to fail the build in case the code coverage  decreases.                         

  • Measure tests with JaCoCo

  • Add a quality gate on Jenkins

Understanding Database Migration

In this introductory video, we will understand database migration and why it is important.                         

  • Understand what is database migration

  • Understand why is data migration important towards CD

Introduction to Flyway

In this video, we will understand what Flyway, the database  migration framework/tool is and how it fits and works for running  migrations.                         

  • Understand what is Flyway

  • Understand how does Flyway work

Running Migrations on Integrations Tests

In this video, we will prepare a Java project to run database  migrations on integrations tests with H2 database and prepare our  project to run the database migrations against the staging environment.                         

  • Run migrations with H2 database

  • Prepare Flyway to run migrations on staging environment

Running Migrations on CI

In this video, we will run the database migration scripts against  the staging environment and create the Jenkins build pipeline to  orchestrate it together with the execution of the automated tests.                         

  • Verify staging environment

  • Create the build pipeline

Changing the Database

Now that we have a Jenkins build pipeline migrating the database  to the latest version and running tests against it, we will change the  database and the tests to make sure the build pipeline is reliable.                         

  • Add new column to table user

  • Run database migration and integration tests

  • Run database migration on staging environment

Understanding the Branching Strategy

In this video, we will understand what a branching strategy or  workflow development is for your team and we will see the centralized  workflow.                         

  • Get an introduction to branching strategy

  • Centralize your workflow

Introduction to Feature Branch Workflow

In this video, we will explore the feature branch workflow and understand how it works.                         

  • Get an introduction to feature branch workflow

  • Understand how feature branch workflow works

Working with Feature Branches in Git

In this video, we will work with feature branches in practice, and  configure Jenkins to execute a Jenkins build pipeline on each feature  branch.                         

  • Create feature branches

  • Configure Jenkins to build feature branches

Configuring Jenkins Multibranch Pipeline

In this video, we will prepare Jenkins to run a multibranch  pipeline project to execute the build pipeline for features and master  branches.                         

  • Configure a multibranch pipeline for feature branches and master

Setting Up Jenkins in the Cloud

In this first video, we will deploy the Jenkins master to cloud  via Vagrant. It will give us the base for the next videos, where we need  Jenkins accessible to GitHub.                           

  • Learn why do we need to deploy Jenkins on cloud

  • Setup Jenkins on Digital Ocean

Automating Pull Request Verification with GitHub

In this video, we will setup the authentication method on GitHub  for Jenkins. After that, we will configure a GitHub server on Jenkins,  and finally create a Jenkins GitHub organization project to build all  the repositories, branches and opened Pull Requests in our GitHub  account.                         

  • Create GitHub personal token

  • Configure GitHub server on Jenkins

  • Create GitHub organization project

Setting Up a GitHub Webhook in Jenkins

In this video, we are going to prepare a GitHub repository to be  integrated with Jenkins. The integration will be used on Jenkins to run  opened Pull Requests.                         

  • Configure GitHub repository integration and services

Automating Pull Request Verification with Pipeline Project

In this video, we will install the GitHub Pull Request build  plugin to be able to process Pull Requests from a particular repository  and then, create a Jenkins pipeline project to trigger the build  pipeline on every new Pull Request.                         

  • Install Jenkins GitHub Pull Request builder plugin

  • Create Jenkins pipeline project

Test your knowledge
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4 out of 5
44 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


7 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion