Chapter 1. An Introduction to Jenkins

Jenkins (née Hudson) is a continuous integration server written in Java. It can be downloaded from http://www.jenkins-ci.org as an executable war. It means that you can run it with java -jar jenkins.war. Jenkins comes with an embedded Servlet Container (Winstone) but you also have the option to deploy the war to an application server like Tomcat, Jetty, JBoss, etc. Jenkins does not use any database to store its configuration. Jenkins uses XStream to save data as XML files.

With Jenkins you can create, monitor and schedule jobs. There are plug-ins for almost anything that you may think about, from different SCMs (git, mercury, SVN, CVS) to plug-ins for integrating your Jenkins with Selenium, Gerrit, TestLink and other tools.

Here is a summarized list of Jenkins features that is available in Jenkins Wiki:

  1. Easy installation

  2. Easy configuration

  3. Change set support

  4. Permanent links

  5. RSS/E-mail/IM Integration

  6. After-the-fact-tagging

  7. JUnit/TestNG test reporting

  8. Distributed builds

  9. File fingerprinting

  10. Plugin Support

For this guide we suggest you to use the LTS (long term support) version of Jenkins. At the moment that this guide is being written, the current version is 1.424.6. However it is very likely that what you will learn here will work with newer versions of Jenkins. Jenkins development team does a great job not only developing cool features, but also keeping backward compatibility between versions.

Jenkins is licensed under the MIT License and its code is hosted at GitHub - http://github.com/jenkinsci.