Jenkins Pipeline - cloudeguru/Jenkins GitHub Wiki

# Architecture:

# What is Jenkins Pipeline ?

A Jenkins pipeline is a way to define your software delivery process as code. It allows you to script your entire build, test, and deployment process in a single file called a Jenkinsfile. This file contains all the stages, steps, and conditions needed to automate your CI/CD pipeline.

# Why Jenkins Pipeline over Freestyle jobs ?

# 1. Code as Configuration:

With Jenkins pipeline, your CI/CD process is defined as code, making it easier to version-control, review, and collaborate on changes. It's like writing a script for your deployment process, which gives you more control and flexibility.

# 2. Reusability:

Pipeline scripts can be reused across different projects, making it easy to standardize your CI/CD process across your organization. You can define common stages and steps once and use them in multiple pipelines.

# 3. Visibility and Transparency:

Jenkins pipeline provides better visibility into your entire CI/CD process. You can see the entire pipeline execution in a single view, including the status of each stage and step. This transparency makes it easier to troubleshoot issues and understand the flow of your builds.

# 4. Pipeline as Code:

Jenkins pipeline allows you to treat your CI/CD process just like any other piece of code. You can use version control, code review, and automated testing practices to ensure the quality and reliability of your pipeline code.

## Terminologies:

# 1. Pipeline:

A pipeline in Jenkins is a series of stages and steps that define the entire software delivery process, from building and testing to deploying the application.

# 2. Agent:

An agent is a machine where pipeline stages are executed. It can be the Jenkins master or a separate agent node.

# 3. Stage:

A stage represents a distinct phase or step in the pipeline, such as build, test, or deploy.

# 4. Step:

A step is a single task or action performed within a stage. Steps can include shell commands, script execution, or Jenkins plugin calls.

# 5. Pipeline as Code (Jenkinsfile):

Pipeline as Code is the practice of defining your CI/CD pipeline in a script file, typically named Jenkinsfile, which is stored alongside your application code.

# 6. Parallel:

The parallel directive allows you to execute multiple tasks concurrently within a stage.

# Required Plugin:

Pipeline groovy lib