Context Navigation

Jenkins Extensible Continuous Integration Engine

Jenkins is an open-source continuous integration system. The Jenkins project is led by Kohsuke Kawaguchi and hosted at http://jenkins-ci.org/.

Jenkins provides the infrastructure for managing automated distributed software build and test processes. It can function both as a Continuous Integration (CI) server and as an advanced cron replacement. In CI mode, Jenkins jobs will periodically poll source code management (SCM) repositories and trigger the build if the state of the project has changed (including if any Subversion externals the project depends on have changed). Jenkins also supports time-based job triggers, allowing it to completely replace the functionality in cron. In addition, by suitably choosing the SCM polling period, Jenkins can support more intelligent nightly / weekly builds, by only running a new build if the project has actually changed.

Unlike cron, Jenkins also actively manages the build resources and prevents different jobs from overwhelming any computer. It manages a collection of build slaves and distributes triggered jobs across the slaves. Further, each slave may be tagged with labels, and each job may be tied to specific labels (e.g. Windows, Linux32, Linux64, Matlab, etc.).