Another one of my favorite tools that I want to use is Jenkins. Why? Purely because the name is fascinating. Yes. That is one of the main reasons, apart from the fact, that I want to learn more about the continuous integration and deployment processes, how the builds are automated etc.
So, a brief history about Jenkins. It is a Continuous Integration tool. I have discussed the pros of Continuous Integration in the linked post, so you can take a look at that.
Jenkins stemmed from the original Hudson project. It was the brain child of Koshuke Kawaguchi, an engineer at Sun Microsystems, where the Hudson project was originally conceived.
Complications arose after Oracle took over Sun in 2008. The area of difference was the name “Hudson“, which Oracle had trademarked and were planning on a launching an enterprise edition of this software. Within the open source community, lead by the chief architect of this project, Koshuke Kawaguchi, there was a call to keep the project as an open source and to separate it from Hudson.
As a result, on January 11, 2011, a call for votes was made to change the project name from “Hudson” to “Jenkins”.The proposal was overwhelmingly approved by community vote on January 29, 2011, creating the Jenkins project.
I’m not going to go into too much detail here. If you go in, Jenkins wiki introduction page, you can see a lot of reasons for this –
- Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
- Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine.
- Easy installation- You just need to have any web-server and have to make the war file run. No database or complicated installation procedures to follow.
- Easy configuration- Jenkins can be configured entirely from its friendly web GUI with extensive on-the-fly error checks and inline help. There’s no need to tweak XML manually anymore, although if you’d like to do so, you can do that, too.
- JUnit/TestNG test reporting- JUnit test reports can be tabulated, summarized, and displayed with history information, such as when it started breaking, etc. History trend is plotted into a graph.
- Plugin Support: Jenkins can be extended via 3rd party plugins. You can write plugins to make Jenkins support tools/processes that your team uses.
For a more comprehensive list of pros, you can go to the above mentioned Jenkins wiki. So now that we have gone through the basics of Jenkins, it’s time to get started with the installation.