- Overview
- Prerequisites
- Audience
- Audience
- Curriculum
Description:
Discover the world of continuous integration and continuous deployment (CI/CD) in our 'Intro to Jenkins and CI/CD' training course. This program is designed to help software developers and engineers, including those in quality assurance roles, effectively configure and utilize Jenkins to enhance code quality through continuous builds, code coverage, quality tools, and testing suites. In this course, you will gain essential knowledge in CI/CD, master Jenkins configuration, effectively manage plugins, and learn to create and manage jobs. Elevate your skills in software development and quality assurance, and become a CI/CD expert with our hands-on training.
Duration: 2 Days
Course Code: BDT295
Learning Objectives:
After this course, you will be able to:
- Describe Continuous Integration
- Configure Jenkins to support jobs and builds
- Setup and measure code quality
- Create alerting / notifications for builds
- Development and Testing knowledge
- The course will be taught using Jenkins 2, Java 11, Maven 3 and a GitHub repository.
- Software Build and Release Engineers
- Software Developers
- DevOps Practitioners
- Software Build and Release Engineers
- Software Developers
- DevOps Practitioners
Course Outline:
- Introduction to Continuous Integration
What is CI? How does CI help improve software quality? Build Automation Basics Common types of builds Common CI Environments Expected outcomes when moving to CI
- What is Jenkins?
History Features Overview of Jenkins Architecture Understanding the Jenkins build infrastructure
- Setting up Jenkins
Download and Install Getting the initial password Installing Suggested plugins Creating first user Jenkins Home Directory Uninstall
- Configuring Jenkins
Manage Jenkins Configure System:
- Understanding Quiet Period
- Project naming restrictions
- Setting up Jenkins Location and Admin Email
- Email Configuration
- Email Setup
- Manage Plugins
- Installing Plugin
- Plugin Versions
- Uninstalling plugins
- Global Tool Configuration
- Setup JAVA_HOME and Setup MAVEN_HOME
- All about Jobs
Types of Jobs Creating Freestyle Project
- Use Custom Workspace
- Configuring SCM
- Setting up a git-based (github) project
- Build Triggers
- Build Periodically
- Cron Syntax Tricks
- Build Environment Parameters
- Email Notifications
- Building other Projects
- Archiving artifacts
- Obtaining artifacts
- Understanding Upstream/Downstream Projects
- Updating an existing job
- Cloning an existing job
- Importing/Exporting jobs
- Creating Maven Project
- Plugin Management
- Notable plugins and their functionalities
- Recommended Plugins and their functionalities
- EC2 plugin for Jenkins Autoscaling
- Creating Pipelines
- Blue Ocean
- Declarative vs Scripted Pipeline
- Pipeline Syntax Generator
- Understanding Jenkinsfile
- Creating scripted pipeline job
- Creating declarative pipeline job
- Simple to complex examples
- Creating and storing artifacts
- Jenkins Post Build and Reporting
- Setting up Post-Build Actions
- Setting up Test Reporting
- Code Coverage
- What is code coverage
- Why is code coverage important?
- Measuring code coverage
- Configuring Cobertura (for Java)
10. Code Quality – Sonarqube
- Code Quality and CI Checkstyle
11. Setting up Notifications
- Email Notification Slack Notification
- Other type of notifications
12. Advanced Build Configuration
- Parameterized Builds and Triggers
- Master/Slave Distributed Builds
13. Advanced Build Management
- Joins
- Parallel
- Build Trigger
- Builds based on REST API
- Jenkins Security
- Global security setting
- JNLP Port Management
- Remember Me
- Forgeries
- Authentication
- Security Realms
- Configuring LDAP
- Authorization
- Active Directory
- Jenkins own user database
- Unix User/group database
- Configuring job-level permissions in Jenkins
- Matrix Based Security
- Role Based Strategy
- Project Based Matrix Authorization Strategy
- People vs Manage Users
- Jenkins Agents/Nodes
- Creating Node
- Configuring Node
- Launch Methods
- Node Properties
- Setting up Node
- Tools
- Using node in your jobs/pipelines
- Best Practices for Jenkins
Training material provided: Yes (Digital format)