Jenkins is an open-source CI/CD tool (Continuous Integration/Continuous Deployment). It is developed with Java and it’s a cross-platform tool.(Linux/Windows/Mac OS X) .
Jenkins is NOT a compiler that compiles your code or it is NOT used to that you write your test cases on it. But you can trigger your build or you can trigger your test case system with Jenkins.
Jenkins is used to trigger your existing system with some rules. You can define new jobs and trigger these jobs. For example you want to start a build with some spesific parameters. So you can write the parameters from Jenkins Web Interface (or from CLI) and start build with those parameters. (Jenkins CLI (Command Line Interface) provides you to run your events on Jenkins from commands line.)
Jenkins provides you to execute Windows Batch command or execute Shell scripts. It also can invoke Ant/Gradle/Maven scripts. You can trigger system with these options according to how you want to define.
The smallest piece of Jenkins Systems are named as JOB. You can create a Job to checkout your code from GIT/SVN or trigger a build and so on.
Jenkins also has a concept named as Pipeline. Pipeline is a work bundle that works are following each others that when one job is finishes another job is starting afterwards. Jenkins supports Groovy based language to create pipelines.
With a simple example, you can create a pipeline that makes;
Build the code -> Run Test Automation -> Deploy the package
As you can see during test phase there is a branching to test both for Linux and Windows. You may have many branches between per steps when you have huge projects. Jenkins also provides you to trigger all of these steps automatically with a defined time interval like every-day, every-hour, at XX:YY o’clock so on.
There are so many features and plugins to makes your work easier. Jenkins also allows you to develop your own plugin and attach it into Jenkins.
After define your monotone jobs into Jenkins, let machines makes life easier for humanity 🙂