What’s a CI/CD pipeline?
A pipeline is a automated process that drives software development through a path of building, testing, and deploying code, also known as CI/CD. By automating the process, the objective is to minimize human error and maintain a consistent process . Tools that are included in the pipeline could include compiling code, unit tests, code analysis, security, and binaries creation. .
CI/CD is the backbone of a DevOps methodology, bringing developers and IT operations teams together to deploy software.
Before Continuous Integration
There was all manual processing.
For developers, it's extremely difficult to find the error in a code.
It increases all time in the process and also creates difficulties for developers.
After Continuous Integration
Overall Process fast
Faster bug fixes
Collaboration and Communication
Now, the question is who going to automate all these tasks for us ?
There are many tools like Jenkins, Bamboo, Travis Ci etc. But my favourite one is Jenkins.
What is Jenkins?
It can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
Jenkins is an open-source project written in Java that runs on Windows, macOS, and other Unix-like operating systems. It is free, Community supported, and might be your first choice tool for CI.
Jenkins automates the entire software development life cycle.
Jenkins was originally developed by Sun Microsystem in 2004 under the name Hudson.
The project was later named Jenkins when Oracle bought Microsystems.
It can run on any major platform without any compatibility issues.
Whenever developers write code, we integrate all that code of all developers at that point in time and we build, test, and deliver/deploy to the client. This process is called CI/CD. Jenkins helps us to achieve this.
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.
You can see the logo of Jenkins. That person in logo looks like a waiter in any hotel/restaurant that put a cloth on the arm, it depicts that it serves or take care of all the work.
Workflow of Jenkins
We can attach git, Maven, Selenium, and Artifactory plugins to Jenkins.
Once developers put code in GitHub, Jenkins pulls that code and sends it to Maven for the build.
Once the build is done, Jenkins pulls that code and sends it to selenium for testing.
Once testing is done, then Jenkins will pull that code and send it to the artifactory as per requirement and so on.
We can also deploy with Jenkins.
Advantages of Jenkins
It has lots of plugins available.
You can write your own plugin.
You can use the community plugin.
Jenkins is not just a tool. It is a framework i.e. You can do whatever you want. All you need is plugins.
We can attach slaves( nodes) to Jenkins master. It instructs others(slaves) to do the job. If slaves are not available, Jenkins itself does the job.
Jenkins also behave as a crone server replacement i.e. Can do the scheduled task.
It can create labels.
At this stage, you got an idea about Jenkins. You can explore it on the web and put your foot in the integration world.
Thanks for reading. I would love to connect with you all on Twitter.