wiki:Hudson

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.).

Our master Jenkins instance is hosted on the Sandia internal web at  https://jenkins.sandia.gov/ (SNL internal access only). The master Jenkins instance coordinates builds using over two dozen build slaves, including center build servers, individual developer workstations, virtual machines, and capacity computing clusters. Selected jobs for open source projects are automatically mirrored to our public Jenkins instance at  https://software.sandia.gov/hudson using the  Build Publisher plug-in.

More Information

Custom Plug-ins

  • The Page Markup plug-in (for adding our site banner and footer)
  • The Log Trigger plug-in (allows text in the console log of one job to trigger the execution of downstream jobs)