Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Jenkins focuses on the following two jobs: 1) Building/testing software projects continuously, just like CruiseControl or DamageControl. 2) Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine.
Just java -jar jenkins.war, or deploy it in a servlet container. No additional install, no database.
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.
Change set support
Jenkins can generate a list of changes made into the build from Subversion/CVS. This is also done in a fairly efficient fashion, to reduce the load on the repository.
Jenkins gives you clean readable URLs for most of its pages, including some permalinks like "latest build"/"latest successful build", so that they can be easily linked from elsewhere.
Monitor build results by RSS or e-mail to get real-time notifications on failures.
Builds can be tagged long after builds are completed
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.
Jenkins can distribute build/test loads to multiple computers. This lets you get the most out of those idle workstations sitting beneath developers' desks.
Jenkins can keep track of which build produced which jars, and which build is using which version of jars, and so on. This works even for jars that are produced outside Jenkins, and is ideal for projects to track dependency.
Jenkins can be extended via 3rd party plugins. You can write plugins to make Jenkins support tools/processes that your team uses.