CI/CD Pipeline Using Jenkins
Understand continuous integration (CI), continuous delivery, and continuous deployment (CD)
with Jenkins. These processes allow users as well as administrators to catch problems as soon as
they get injected into software systems.
We start with an introduction to Jenkins and covers its architecture and role in CI/CD. The basics
are covered, including installing and configuring Jenkins. Tool configuration and plugins are
discussed as well as available security measures such as credentials. We will learn what is meant
by Job in Jenkins, its types, sections, and much more. You will look at Java API: projects, jobs,
configuration. The concluding chapters take you through creating pipelines, their role in managing
web apps, and distributed pipelines. The training also covers unit testing using TestNG as well as
end-to-end testing using Selenium Python as a part of building a life cycle and setting up Jenkins
on different physical and Docker environments as well as Jenkins integration with cloud
environments such as AWS. And you will learn how to create reusable libraries for use in Jenkins
Pipeline and control Jenkins servers using Jenkins CLI and REST APIs.
Course content
Chapter 1: Understanding CI/CD
• The Development Workflow
• Continuous Delivery/Continuous Deployment
• CI/CD Workflow Case Study
Chapter 2: Introducing Jenkins
• What Is Jenkins?
Chapter 3: Installing Jenkins
• Installing Jenkins on Windows
Chapter 4: Configuring Jenkins
• Configuring Global Settings and Paths
Chapter 5: Managing Plugins in Jenkins
• What Are Plugins
• Troubleshooting Installation Problems
Chapter 6: Understanding the Global Tool Configuration Page
• Global Tool Configuration Settings
Chapter 7: Managing Security with Jenkins
• Configuring Global Security in Jenkins
Chapter 8: Managing Credentials
• Understanding Credentials in Jenkins
• Creating Credential Entries in Jenkins
• Configuring a Credentials Provider
Chapter 9: Managing Users
• Creating Users in Jenkins
• Assigning Roles to Users in Jenkins
• Creating Project-Based Roles in Jenkins
• Understanding Matrix-Based Security in Jenkins
• Understanding the Project-Based Matrix Authorization Strategy in Jenkins
Chapter 10: Understanding Jobs in Jenkins
• What Is a Job in Jenkins?
• What Is a Build in Jenkins?
• What Is a Free-Style Job in Jenkins?
• How to Create a Job in Jenkins
• How to Configure a Job in Jenkins
• How to Run a Job in Jenkins and Check Its Output
• How to Edit a Job in Jenkins
• How to View a Job’s Workspace
• How to Clear a Job’s Workspace
• How to Delete a Job
Chapter 11: Preparing a Java API Project Using Maven
• Understanding the Maven Build Tool
Chapter 12: Integrating Maven with the Nexus Repository and Creating Free-Style Jobs to
Release the Java API on the Nexus Repository
• Understanding Git
• Installing Git
• Understanding GitHub/GitLab
• Understanding End-End Use of Git for the API Project
• Understanding the Nexus Repository
• Installing the Nexus Repository
• How to Start the Nexus Repository System
• Installing Nexus as a Service
• Accessing the Nexus Repository Manager
• Creating a Hosted Repository to Release the Artifacts
• Integrating Maven and the Nexus Repository
• Creating a Jenkins Free-style Job to Release the [Link] in the Nexus Repository
• Running a Jenkins Free-Style Job to Perform a Release of the [Link] in the Nexus
Repository
Chapter 13: Creating an Auto-Trigger Free-Style Job to Manage Java API Releases
• How to Add a New Code Contributor to a Private GitLab Repository
• Understanding SSH Authentication
• Applying SSH Authentication to the Java API Code Repository
• Accessing the JenkinsBookCalculatorAPI Repository Using SSH URL and Adding new
Arithmetic Functions to the CalculatorAPI
• Creating an Auto-Trigger Jenkins Job with Email Notification
• Setting Up Jenkins to Send Email Notifications
• Triggering the New Jenkins Job
• Understanding the Execution of Jobs with SCM Set
• Failing the Build to See the Email Notification
Chapter 14: Understanding the Jenkins Pipeline
• What Is a Jenkins Pipeline?
• Why Use a Jenkins Pipeline?
• Understanding Different Pipeline Concepts
• Pipeline Syntax Overview
• Defining a Simple Pipeline in Jenkins UI
• Resolving [Link]: Unsupported Class File Major Version Error
• Understanding String Interpolation in the in Jenkins Pipeline
• Creating a Pipeline Job to Release the Java API
• Running a Pipeline Job and Release the Calculator API
Chapter 15: Creating Jenkins Jobs to Manage a Web Application Project
• Understanding the Calculator Web Application Source Code
• Building the Calculator Web Application
• Deploying the Calculator Web Application
• Accessing the Calculator Web Application
• Understanding E-E Testing the Calculator Web Application Using the Selenium WebDriver
• Pushing the WebApplication and Automation Project to the GitHub Repository
• Pushing the Selenium Python Automation Project to GitHub
• Creating Parameterized Auto-Trigger Free-Style Jenkins Jobs
• Configuring an Extended Email Notification
• Running a Parameterized Free-Style Job Manually
• Auto-Triggering a Parameterized Free-Style Job
• Creating a Parameterized Pipeline Job
• Creating a Build and Deploying the Calculator Web Application Parameterized Pipeline Job
• Creating a TestCalculatorWebApplicationPipeline Job
• Running the Parameterized Pipeline Job Manually
• Automatically Triggering the Parameterized Pipeline Job
Chapter 16: Understanding Pipeline as Code
• What Is API Authentication
• How to Apply API Authentication to GitHub Repositories
• How to Use an API Token to Access a Private GitHub Repository
• Creating an API Access Token in GitLab
• How to Use the API Token to Access a Private GitLab Repository
• How to Access a GitHub/GitLab Repository Using an API Token in Jenkins
• Running Free-Style Jobs Accessing the GitLab Repository with the API Token
• Creating a Pipeline Job to Trigger Using GitHub Webhooks
• Triggering Pipeline Jobs Using GitHub Webhook
Chapter 17: Jenkins Distributed Builds
• Jenkins Distributed Architecture
• Ways to Connect the Master and Slaves
• Understanding the Configuration to Connect the Master to the Agent Using SSH
• Creating a Free-Style Job to Run on the Node1 Agent
• Running the New Free-Style Job on the Node1 Agent
• Understanding the Configuration to Connect the Agent to the Master Using JNLP
• Creating a Job to Run on the JNLP Node