Getting Started With
Jenkins & CI/CD
Expected Learning Outcomes
Getting Started With Jenkins & CI/CD
! CI-CD: An Overview
! Brief Overview of Jenkins Job Structure
! Introduction to Jenkins DSLs
! Introduction to Integrated Build Tools
! Configure Pre-Requisites For Jenkins
! Install Jenkins
! Configure Jenkins
@tetranoodle
“Continuous integration (CI) is
Continuous the practice, in software
Integration engineering, of merging all
developer working copies to a
shared mainline several times a
day.”
- Wikipedia
@tetranoodle
Fetch Changes
Build
Test
Success/Failure?
Code
Checkins
Build Notifications
Continuous Integration
@tetranoodle
Continuous Integration
! Code Integration Practice
! Centrally Managed Repository
! Efficient Build and Test Executions
! Immediate Issue Fixes
! Successful Delivery Pipeline
@tetranoodle
“Continuous delivery (CD) is a software
engineering approach in which teams
Continuous produce software in short cycles,
Delivery ensuring that the software can be
reliably released at any time. It aims at
building, testing, and releasing
software faster and more frequently.”
- Wikipedia
@tetranoodle
Continuous Delivery
! Sustainable Product Delivery
! On-Demand Deployment
! Cost Efficient Process
! Continuous Testing and Feedback
! High Quality Deliverables
@tetranoodle
Post-Build Initialize
Actions Job
Run Build Source Code
Steps Management
Trigger
JENKINS Automation
Builds
@tetranoodle
Jenkins SCM
Master Repository
Jenkins Slave Jenkins Slave
Job Job Job Job
Jenkins Architecture
@tetranoodle
Jenkins Jobs
! Using Jenkins UI
! Can Copy Jobs
! Cumbersome & Error Prone
! Jenkins DSL
@tetranoodle
Jenkins DSL
! Configuring Jobs as Code
! DSL Approach
! Jenkins Plugin: job-dsl-plugin
@tetranoodle
Jenkins DSL
! Features
! Simplify Jobs
! Work With Multiple Environments
! Direct Control of XML
! Easy For Job Configurations
@tetranoodle
!
DevOps
Ecosystem
@tetranoodle
Maven
! Build Automation And Comprehension
! Uniform Project Build System
! No Third-Party Binary Storage Needed
! Consistent Project Structure
! Hierarchical Dependency Tree For
Projects
! Manages Essential Artefacts
! Easy To Use In Jenkins
@tetranoodle
Ant
! Used For Building Java Applications
! Large Number Of In-Built Tasks
! Create Build Jobs With Targets
! XML-Based Configurations
! Can Build Non-Java Applications
! Flexibility In Java Projects
! Easy To Invoke In Jenkins
@tetranoodle
Gradle
! Open-Source Build Automation System
! Executes Complex, Multi-Project Builds
! Offers A Rich Pool Of Plugins
! Gradle Project Objects
! Enables Parallel Task Executions
! Runs Multiple Builds Easily
! Works Across Repositories
! Invoke In Jenkins As A Build Step
@tetranoodle
Pre-Requisites For Jenkins
Java Installation
Add Latest Java Repository Update APT Packages
Run Oracle Java Installer Check Version of Java
@tetranoodle
Install Pre-
Requisites For DEMO
Jenkins
@tetranoodle
Play Video
Install Jenkins DEMO
@tetranoodle
Play Video
Configure Jenkins DEMO
@tetranoodle
Play Video
@tetranoodle