40 great Jenkins plugins in 40 minutes

Miro Cupak (DNAstack)

Twitter @mirocupak


Who am I?

  • currently software engineer at DNAstack
  • contributor/administrator (~1 year) at Red Hat
  • Jenkins user (~5 years)
  • previously quality engineer at Red Hat


  • 638 organization members on GitHub
  • 100K active installations with 300K nodes
  • 3.2M installations of 1050 unique plugins

Which plugins should you use?


Dashboard View

  • view implementation containing portlets (well, sort of...)
  • easy to extend

CloudBees Folders

  • organizes jobs into hierarchical folders (think file system)
  • better grouping capabilities than Nested View and others

Build Timeout

  • automatically aborts a build if it's taking too long
  • usually works

Workspace Cleanup

  • removes data from the workspace before/after a build

Multiple SCMs

  • allows jobs to check out sources from multiple SCM providers

Node Label Parameter

  • allows you to dynamically select the node where a job should run

URL Trigger

  • polls given URLs for changes and triggers a build after a change is detected
  • only HTTP(S), other protocols included in XTrigger

HTML Publisher

  • publishes HTML reports to job/build pages

Embeddable Build Status

  • exposes current build status as an image

Matrix Project

  • supports multi-configuration (matrix) project type
  • used to be a part of Jenkins core, now a bundled plugin
  • essentially a parametrized job running all combinations of parameters

Matrix Reloaded

  • rebuilds parts of matrix builds

Matrix Combinations

  • allows the user to dynamically choose combinations to run in a matrix job
  • introduces a Matrix Combinations parameter type


  • allows for execution of groovy code
  • 2 types of build steps:
    • groovy scripts
      • run in the slave's JVM
    • system groovy scripts
      • run inside master's JVM


  • outputs simple charts (plots) from builds

Job Restrictions

  • restricts how builds can be triggered and where they can run


  • introduces concept of owners of jobs and slaves
  • includes:


  • rebuilds a parameterized build with the same parameters

Parameterized Trigger

  • extension of out-of-the-box upstream-downstream job relationship
  • provides job chaining with parameter passing


  • allows you to write complex workflows in Groovy with an embedded DSL
  • forget Build Flow and Join plugins
  • introduces a new workflow job type
  • collection of plugins
  • supports:
    • core job-related stuff (triggers, parameters, SCM...)
    • durable pipelines
    • allocation of slaves and workspaces
    • human input integrated into flows
    • sandboxing via Script Security plugin

Description Setter

  • sets the description for a build
  • uses a regular expression to find a line in the console log

Implied Labels

  • recognizes implication rules to infer node labels

Environment Injector

  • manages environment variables for jobs and nodes
  • use cases:
    • set up clean environment for nodes
    • inject variables based on user parameter values
    • inject environment variables from the evaluation of a Groovy script


  • automatically reschedules a build after a build failure

Email Extension

  • controls all aspects of email notifications




  • adds timestamps to console output

Copy To Slave

  • transfers data between the master's file system and jobs' workspaces

Copy Artifact

  • copies an artifact from another build/job into the current build's workspace

Priority Sorter

  • queues jobs according to their priorities
  • the lower the priority, the sooner the job runs

Throttle Concurrent Builds

  • limits the number of concurrent builds of a project running per node or globally
  • replaces Locks and Latches plugin

Build Publisher

  • sends builds to another Jenkins master over HTTP

Job Configuration History

  • versioning of job and system configuration

Audit trail

  • records who performed a particular operation and when

Tmp Cleaner

  • periodically cleans up JVM temporary files
  • no UI


  • allows you to store and manage credentials in Jenkins
  • exposes API to other plugins
  • organizes credentials into domains

Disk Usage

  • periodically calculates disk space occupied by jobs
  • beware of performance impact!


  • dynamically provisions Docker slaves
  • needs images with JDK and SSH server
  • allows to commit a container


  • runs Xvnc session during a build
  • each build gets its own display allocated from a free list

Read-only Configurations

  • shows global and job configurations in read-only mode

Custom Tools

  • installs tools on slaves as needed


  • allows the users to mark jobs as favorite

Thank you.

Twitter @mirocupak #devconfcz          DevConf.cz http://devconf.cz/f/81
Github http://mcupak.github.io/jenkins-plugins-talk