Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.

Jenkins Protip: Update your CI environment with new plugins

Jenkins Continuous Integration Tool

It’s been quite a while since the last post where we offer our top 10 favorite Jenkins plugins and features. It was so popular that we ended up creating a massive, 50-page RebelLabs report on the same topic, which was named Jenkins CI: The Origins of Butlers, Build Masters and Bowties and included an insightful interview with the man himself, Kohsuke Kawaguchi.

Things have changed since our Top 10 post, however; some popular plugins remain popular, some plugins left the top of the list, and new plugins have arrived. Even our own beloved Jenkins installation has changed, so it seems like a good time to revisit the myriad of plugins to see which new ones have been written and which new features have been introduced. And although Jenkins is a tool for Developers, it has recently become more and more useful to teams in QA (testing), IT Operations and even Project Management, so in addition to developers we also suggest which departments in your organization would derive the most value from a particular plugin, plus how many other users found it useful enough to install in the previous month (we have stats up to February 2013).

Of course, Jenkins’ best “vanilla” features (i.e. easy installation and upgrades along with high scriptability) didn’t go anywhere. But over the last 18 months or so, the sheer number of plugins has risen, and now more than 600 of them are available. Read = Jenkins simply got better!

Skip this & get the full 50-page report

Old tried-and-true

There are a few of our older favorites that we still want to mention, but the main article here will focus on other plugins that have become more interesting in recent times.

1. Amazon EC2 (688 installs in Feb 2013)

2. Copy Artifact (6716 installs in Feb 2013)

3. Throttle Concurrent Builds (1421 installs in Feb 2013)

4. Join (installs N/A)

Multiple SCMs plugin

Installs in Feb 2013: 1312
Most used by: Developers, IT Operations

By default, Jenkins supports only Subversion and CVS source code managers. But thanks to plugins, almost every other SCM is supported too. The Multiple SCMs plugin allows you to get your code from different places inside a single job. This comes in really handy when, in order to run an operation (build, test, deploy an artifact) on some project, you actually need another project to exist nearby, which is cloned from another repository. Nowadays you can get a plugin for not only Git (by far the most popular with over 22,000 installs in Feb 2013), Mercurial and Bazaar, but also a lot of those that you may have never heard of, such as the Team Foundation Server plugin.

Matrix Reloaded

Installs in Feb 2013: 390
Most used by: QA, Project Management

Jenkins has a special type of job that you can run out-of-the-box, called the Matrix job (or Multiple configurations job). It should be used when you need to run your job in several environments, or with several different configurations (such as Linux/Windows/Mac OSX environments or some build debug/release parameters).

When you run this kind of job, Jenkins starts all the builds of all the configurations simultaneously, as running them in parallel saves you a lot of time. But what if one of the builds in one of the configurations fails? Normally, you’d have to rerun everything again once you fix the build, but the nifty Matrix Reloaded plugin allows you to rerun a particular configuration, and not all of them.

Build Pipeline

Installs in Feb 2013: 4745
Most used by: Project Management

Often you will have several jobs that are chained, i.e. your first job builds the artifact and passes it on to the second job, which runs tests on it (we even wrote a blog post on Job Chaining). As soon as your tests have passed and the second job finishes, the third job fires, for example, releasing (uploading) the artifact.

In the main view of Jenkins, you will not be able to see how the jobs are connected, but the Build Pipeline plugin provides a new kind of view, where you can see at which step in your build pipeline you are at (or where it has interrupted). It’s great for project managers to get a quick snapshot understanding of what’s going on.

If you want to read more about this plugin and others, check out another post Toomas wrote on Jenkins build pipeline!


Installs in Feb 2013: 1141
Most used by: Project Management

Here is another good way to tame your downstream/upstream job chain definition. The Multijob plugin gives the option to define a complex and hierarchical job structure in Jenkins.

In the Build section, it can define phases that contain one or more jobs, so that the jobs inside a phase are run in parallel, and different phases run sequentially. In many ways, this provides a similar functionality to Build Pipeline and Join, but gives you the freedom to choose another option as you like.


Installs in Feb 2013: 6198
Most used by: Developers, IT Operations

The Warnings plugin scans your console log or specified log files for text that matches particular structures. Mostly you use it to parse compiler warnings of different formats and to report the type and number of warnings found.

It has several parsers predefined, but you can create your own through the Jenkins UI. This way, you can use it for parsing not only compiler warnings, but also other information you might be interested in, plus there is also the possibility to change the build result based on the number of warnings found.

Instant Messaging Plugins

Installs in Feb 2013: Skype (400), Jabber (2386), IRC (1519)
Most used by: IT Operations, Project Management

Various Instant Messaging plugins–for example Skype, Jabber and even IRC–will let you send notifications from Jenkins via different protocols to a particular user or group of users – you can even define it dynamically to identify to the culprit that broke the build :)

But what is more interesting, you can talk to Jenkins via a ‘bot’ and run commands and query the build status, which may come handy in some situations. Seems like most orgs are going with Jabber and IRC, with Skype lagging behind for the most part. If you’ve got any preference for Jabber, tell us why below!

Disk Usage

Installs in Feb 2013: 6999
Most used by: IT Operations

We consider the Disk Usage plugin fairly crucial to our Jenkins installation. Not only does it monitor disk space used by the job workspace, but it also keeps a history so that you can see how much more space you consume with each job. Whether you want to or not, disk space is one of the things that you should closely monitor on a Jenkins installation, because the domino-effect that can happen when you run out of memory is not something you’d like to deal with!


Installs in Feb 2013: 915
Most used by: IT Operations

Usually a build in Jenkins starts when a developer commits code, but sometimes you might want to start a build as part of a change in an external system. An example of this would be a job that uses a binary artifact (library) created by another company.

Thus, the next build should start when a new version of this artifact becomes available (e.g. deployed to a Maven repository). For these cases, the URLTrigger plugin is useful for monitoring a URL and initiating a build when the content of the URL changes.

Subversion Tagging plugin

Installs in Feb 2013: 3178
Most used by: Developers

Usually Jenkins has read-only access to your version control system (e.g. Subversion, Git, Mercurial or CVS). A typical build job checks out the source code of the project as a first step, but it is possible to give write access to Jenkins (the ability to commit) for a more advanced workflow.

This way, Jenkins can also make changes to the code repository in an automatic way. A good example of this practice is the Subversion tagging plugin. This plugin is a post-build action that creates a subversion tag if the build succeeds. This could be a setting in a build job that deploys a specific software module to production, and allows you to mark the release in the version control system as well.

Dashboard View

Installs in Feb 2013: 7386
Most used by: Project Management

Vanilla Jenkins shows only a list of configured jobs and their current status. For large enterprise projects with multiple builds, however, this is not always the optimal way to get the big picture. Like the Build Pipeline plugin, the Dashboard View plugin helps Project Managers and Architects get a more compact overview of all jobs and their statuses. Of the plugins covered in this post, Dashboard View was the 2nd most popular to install in of Feb 2013.

Analysis collector

Installs in Feb 2013: 5977
Most used by: Developers

If you don’t use Sonar for code quality, first read this blog post on why you should, then spend some time looking into all the individual quality plugins of Jenkins. By default, only unit test results are shown, but there are plugins for Findbugs, PMD, Checkstyle, JDepend and other tools for quality analysis and code coverage. The Analysis collector plugin integrates this functionality into a single API, which will present historical graphs for your build so that you can monitor quality as the project progresses.


As we said above, Jenkins just keeps getting better. The world’s favorite build master becomes more mature with every year, and there more and more plugins to choose from–over 600 now and growing. Of all the plugins we covered, the Git plugin for SCM is by far the most popular, with over 22,000 installs in Febuary 2013 alone.

This is good for users as transparency, community development and improvements all around means that you have more freedom to configure Jenkins in your own way (i.e. firing Nerf missiles at build breakers) and create your Continuous Integration pipelines even if you have a very complicated environment. For more on this, and how its excellent foundation is matched with an active community of committers will keep Jenkins the de facto CI server on the market for several years to come, check out the full report from RebelLabs.

Get the Full Report from RebelLabs


  • therealstubot

    When the IM plugin works, it’s truly a great tool. However, it has a really REALLY bad bug in it that is a show stopper in my opinion.

    Our company has an internal chat server running. It’s a jabber server, and it’s fairly reliable. We had the jenkins IM plugin installed and talking through the company jabber server, and all was good.

    BUT if the jabber server crashes, or becomes unavailable, jenkins locks up when it tries to send an IM message. You have to restart the process, there’s no tickling it back to normal.

    On a big release day, this bug was discovered when in the midst of 30 concurrent builds, the chat server ran out of memory and crashed, and everything came to a grinding halt.

  • Wow, wouldn’t want to stumble on that myself!