You are on page 1of 24

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

You might also like