Jenkins Pipeline
Jenkins Pipeline is a combination of jobs to deliver software continuously using Jenkins.
A Jenkins pipeline consists of several states or stages, and they get executed in a sequence one after the other. JenkinsFile is a simple text file that is used to create a pipeline as code in Jenkins. It contains code in Groovy Domain Specific Language (DSL), which is simple to write and human-readable.
Either you can run JenkinsFile separately, or you can run the pipeline code from Jenkins Web UI also. There are two ways you can create a pipeline using Jenkins.
Declarative – a new way of creating Jenkins Pipeline. Here you write groovy code containing “pipeline” blocks, which is checked into an SCM (Source Code Management)
Scripted – way of writing groovy code where the code is defined inside “node” blocks.
Continuous Integration
Continuous Integration is a process of integrating code changes from multiple developers in a single project many times. The software is tested immediately after a code commit. With each code commit, code is built and tested. If the test is passed, the build is tested for deployment. If the deployment is successful, the code is pushed to production.
This commit, build, test, and deploy is a continuous process and hence the name continuous integration/deployment.
Multi-branch Pipeline
A multibranch job is simply a folder of pipeline jobs. For every branch you have, Jenkins will create a folder. So instead of creating a pipeline job for each of the branches you have in a git repository, you could use a multibranch job. This means that you’ll have to create only one job. You also need to define where the Jenkinsfile is, and it’s important that this file is at the same location in all the branches you create.
Continuous Integration | Continuous Delivery | Continuous Deployment |
Continuous Integration (CI) is a DevOps software development practice that permits developers to combine/merge the changes to their code in the central repository to run automated builds and tests. | Continuous Delivery (CD) refers to the building, testing, and delivering improvements to the software code. The most critical part of the CD is that the code is always in a deployable state. | Continuous Deployment (CD) is the ultimate stage in the DevOps pipeline. It refers to automatic release of any developer changes from the repository to the production stage. |
JenkinsFile Sample Pipeline code (Groovy Code)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Hi, King. Starting to build the Apps.'
}
}
stage('Test') {
steps {
input('Do you want to proceed?')
}
}
stage('Deploy') {
parallel {
stage('Deploy start ') {
steps {
echo "Start the deploy .."
}
}
stage('Deploying now') {
agent {
docker {
reuseNode true
image ‘nginx’
}
}
steps {
echo "Docker Created"
}
}
}
}
stage('Prod') {
steps {
echo "App is Prod Ready"
}
}
}
}
Explain the above code.
The pipeline block consists of all the instructions to build, test, and deliver software. It is the key component of a Jenkins Pipeline.
An agent is assigned to execute the pipeline on a node and allocate a workspace for the pipeline.
A stage is a block that has steps to build, test, and deploy the application. Stages are used to visualize the Jenkins Pipeline processes.
A step is a single task to be performed, for example, create a directory, run a docker image, delete a file, etc.
Comentarios