Continuous Integration
Learning Objective: In this module, you will learn about what is Continuous Integration(CI), why CI, Best practices in CI and tools for continuous integration.
Topics:
- Introduction to continuous integration
- Advantages of Continuous integration
- Implementation of continuous integration
- From Hudson to Jenkins
- Introduction to Jenkins
Getting Started with Jenkins
Learning Objective: In this module, you will learn about Jenkins, setting up Jenkins environment on your local setup, terminologies used in Jenkins and creating Jenkins job.
Topics:
- Install Jenkins on a local machine
- Starting Up with Jenkins
- Jenkins Architecture and terms of Jenkins
- Overview of Jenkins UI
- Creating a Jenkins Job
- Configuring a Jenkins job
Hands-On:
- Installing the Jenkins setup, create a simple Jenkins job, delete, fail, disable the job
Plugins and its uses
Learning Objective: In this module, we will learn about various plugins available in Jenkins and their usage. Then we will learn to configure Jenkins to work with other tools, working with maven builds and polling for source code changes
Topics:
- Introduction to Plugins
- Adding Plugins to Jenkins
- Commonly used plugins (Git Plugin, Parameter Plugin, HTML Publisher, Copy Artifact and Extended choice parameters)
- Configuring Jenkins to work with java, Git and Maven
- Creating a Jenkins Build and Jenkins workspace
- Configure Jenkins to check for source code changes periodically
- Working with Maven Build Jobs
Hands-On:
- Adding the plugins to the Jenkins job, creating a Jenkins job to check for source code changes, creating maven build jobs
Setting Up Your Build Jobs and Security
Learning Objective: In this module, we will learn to learn to Build Jobs, add the advanced features to Jobs and Security.
Topics:
- Creating a Freestyle Build Job
- Introduction to Build Triggers and to Build Steps
- Pre-and Post-Build Actions: Adding properties and properties files
- Running Your New Build Job
- Parametrized Builds
- Distributed builds
- Setting Email notification
- Enabling Security in Jenkins
- Different Levels of Authentication
- Types of Access and Administration of the Access
Hands-On:
- Creating Freestyle jobs, demo on security and authorization in Jenkins, sending email notifications, running the Jenkins job
Implementing Automated Testing
Learning Objective: In this module, you will learn to setup Jenkins to Implement Automated Testing and publish reports.
Topics:
- Introduction
- Automating Your Unit and Integration Tests
- Configuring Test Reports in Jenkins
- Displaying Test Results
- Ignoring Tests
- Automated Acceptance Test with JUnit
- Automated Performance Test with JMeter
Hands-On:
- Unit and integration testing, ignoring the tests, display test results
Metrics to Improve Quality
Learning Objective: In this module, we shall learn to check for the code coverage and usage of PMD and FindBugs Jenkins plugin and also Jenkins support with other build systems.
Topics:
- Looking for foul Code through Code Coverage
- Activating and usage of PMD Jenkins plugin
- Activating and usage of Findbugs Jenkins plugin
- Verifying HTML Validity
- Reporting with JavaNCSS
- Jenkins with Gradle script build system
- Jenkins with shell script build system
Hands-On:
- Jenkins plugin for analyzing the bugs, reporting using Jenkins, Jenkins with a different build system
Distributed Jenkins Configuration
Learning Objective: In this module, we shall learn to create a distributed Jenkins system to handle concurrent build triggers, we will learn to set up master and slave configuration in Jenkins.
Topics:
- Introduction to Distributed Jenkins Build
- Configuring Master Jenkins node
- Configuring the Jenkins slave
- Managing nodes and distributing jobs over nodes
- Binding Jobs on the master and slave setup
- Labelling the nodes to run a specific job
Hands-On:
- Configuring slave node in your Jenkins, adding labels to nodes, managing the nodes
Maintain and Use Jenkins
Learning Objective: In this module, we shall learn the Best Practices in Jenkins culture. You will also learn the Do’s and Don’ts in Jenkins setup
Topics:
- How to maintain Jenkins
- Do’s and Don’ts of Jenkins
- Backup of Jenkins and Migrating Jenkins from one server to another
Hands-On:
Performing Automated Deployment and Continuous Delivery
Learning Objective: In this module, we shall learn to deploy an application to a web server using Tomcat and understanding pipeline and parallel builds.
Topics:
- Deployment Overview
- Implementing Automated and Continuous Deployment
- Deploying an application to an application server
- Install and configure tomcat
- Deployment of Simple Java web application using Tomcat
- Jenkins Build Pipeline
- Parallel Jenkins build
- Achieve generated Artifacts
- Jenkins integrations (GitHub, slack, Custom API)
- Scaling Jenkins
Hands-On:
- Continuous deployment using Jenkins, parallel and pipeline builds, Jenkins integrations
Jenkins Pipeline
Learning Objective: In this module, we shall learn to implement a project’s entire build/test/deploy pipeline in a jenkinsFile and create a fully automated Jenkins pipeline
Topics:
- Overview of Pipeline as code
- Overview of Pipeline Plugin
- Automated Jenkins Pipeline
Hands-On: