Jenkins - Continuous Integration Reloaded - codecentric AG Blog
Continuous Integration is a vital part of our Agile Software Development Process for quite some time now. And of course back then there was the question which tool should we use. By the way the tool questions is one that we developers are somehow addicted to all the time :-). Anyway we did a comparison of different tools at that time and Hudson was the winner against tools like Bamboo and Cruise Control.
With Oracle taking over Sun the Hudson project was starting to get into political trouble that finally let to the point that the original Hudson developers started a spin-off project from Hudson called Jenkins. I am a technical guy so I do not want to comment on the political aspects of this whole exercise. But I am very well interested how Jenkins feels in comparison to the good old Hudson. I am not expecting too big changes, but let’s have a look.
The new name Jenkins was chosen to create again the impression of some subservient butler. When checking up the name one also finds this funny story about a World of Warcraft character :-). But this is probably only an accident.
Let’s start the technical part. And yes: Jenkins is still the reference for me (same as Hudson) when it comes to ease of initial installation. Three simple steps:
- Donwload the jenkins.war file to some directory.
- Start the server standalone by issuing: java -jar jenkins.war
- Open the web-frontend of Jenkins and start creating new CI-Jobs.
During startup it is the first time that Jenkins cannot really hide its Hudson-roots (on the other hand: why should it).
And the first look at the web-frontend is then indeed a small surprise, because already created Hudson-projects are showing up right away in Jenkins.
Of course this makes the migration from Hudson to Jenkins even easier and this is also in line with what is stated on the Jenkins Homepage for upgrading from Hudson. From here creating new jobs will be very familiar for users knowing Hudson already. For new users a key feature will for sure be the ease of creating new Jobs.
To do so one can choose that kind of project – from a pre-defined list – that might fit best. Personally I am using most of the time either free-style projects (as the name says this one gives a lot of freedom) or Maven projects.
Continuing with the job configuration is straightforward as is the job execution and monitoring the results. Nothing new for veteran Hudson users here :-).
What now? Currently there is not much that is differentiating Jenkins from Hudson (or Hudon from Jenkins) as the spin-off is still quite fresh. But in the long run it will of course be interesting to see how these two tools will evolve. and if and how they will be heading into different directions. And not only Jenkins will move forward, but also development for Hudson will continue and for example Sonatype is in favour of Hudson.
For us – the users – this will give us more choices in the future and I think we have some interesting times ahead of us with respect to CI tools.