CI/CD Tool Jenkins

Jenkins History and Introduction
Jenkins was originally developed by Sun Microsystems in 2004 under the project name Hudson.
After that Oracle took over Jenkins which is running under Hudson.
Then Oracle created two versions of this.
a. Jenkins
b. HudsonJenkins:- It is Open Source and free. Jenkins Community Support is there.
Hudson:- Enterprise Edition - Paid Version - Oracle company will support here.
Because of its free nature and open source, Jenkins is very popular in the market.
Jenkins is an open source written in Java that runs on Windows, macOS and other Unix-like OS. (No Dependency)
It is free community supported and might be your first choice tool for CI.
Why do Jenkins we use it?
For what purpose Jenkins is required?
Why Jenkins Only?So, Jenkins is a continuous integration continuous deployment or delivery tool.
It is a pipeline structure. The first come first serve concept is there.
On each level testing process is there.
At every stage, the developer will receive feedback if there is any failure in the code.
Because of its free nature and open source, Jenkins is very popular in the market.
It can run on any major platform without any compatibility issues. Jenkins runs on any OS like Windows, macOS, Linux, etc.
-------------------------------------------------------------------------------
What is CI/CD?
Whenever developers write code, we integrate all that code of all the developers at that point of time and we build, test and deliver or deploy to the client. This process is called CI-CD.

As per the above diagram, you can see continuous integration, continuous delivery or continuous deployment process.
Continuous Integration:- The developer will write the code and then he will push that code through Git into the GitHub repository. Once it is successfully pushed Jenkins will pull out that code and start building activity with the help of the building tool Maven. Once the building is done successfully Jenkins again pull out that code for testing purpose. With the help of Selenium or Junit Jenkins will complete the test activity. You can say this process is continuous integration.
Continuous Delivery/Deployment:- Once the continuous integration process is done we will analyze that code or check the quality of that code with the help of checkstyle because we need error or bug-free code.
Delivery - Handover file to the client - Client will install that project on his servers.
Deployment - One of our team member will go to the client side and will deploy the code onto the client servers.

-------------------------------------------------------------------------------
Jenkins is all about Plugins
So what is plugins?
Plugin is nothing but software or small libraries that add new abilities to Jenkins and can provide integration points to other tools.
If you want to communicate with Git, Maven, Selenium or AWS EC2 Instance you have to install plugins related to that tool.
We can attach Git, Maven, Selenium and Artifactory plugins to Jenkins.
-------------------------------------------------------------------------------
Advantages of Jenkins
It has lots of plugins.
You can write your own plugin.
You can use a community plugin.
Jenkins is not just a tool. It is a framework i.e., you can do whatever you want, All you need is plugin.
You can attach a slave to Jenkins master. It instructs other slaves or nodes to do the job. If the slave is not available, Jenkins will itself does the job.

