Nuxeo Core Developer Guide

Jenkins plugins

Updated: March 18, 2024

Here is a quick overview of the Jenkins plugins used at Nuxeo. Core plugins (and those used to be part of the core) are not listed (i.e. Ant, Javadoc, SVN).

A lot of other plugins are under tests, for adding capabilities or replacing earlier solutions. The "Usage" column indicates how much we consider a plug-in as recommended (somehow useful) or required (we couldn't live without or it was a pain before). Of course, this is fully subjective.

Comments and recommendations are welcome.

 

UsageJenkins administration, job configuration and capabilities
RequiredLDAP Plug-in
Recommended
This plug-in allows for the build queue to be sorted based on pre-assigned priorities for each job.

 

This plug-in allocates free ports as environment variables.

 

 

This plug-in can be used to set environment variables to be applied to all build steps in a given job.

 

This plug-in enables the selection of multiple source code management systems for a build. For example, it enables checking out the source code from one SCM while checking out legacy or third-party code from another.

 

This plug-in allows to execute a batch/shell task depending on the build log output.

Recommended

Recommended

The Matrix Reloaded plug-in. Used for rebuilding a subset of a matrix' configurations, reusing the rest.

Recommended

This plug-in lets you trigger new builds when your build has completed, with various ways of specifying parameters for the new build.

Required

This plug-in integrates GIT with Jenkins.

 

Allows Jenkins to act as a Git server.

Recommended

This plug-in adds two new parameter types to job configuration - node and label, this allows to dynamically select the node where a job/project should be executed.

Required

This plug-in is a replacement for Jenkins's email publisher

Recommended

Adds a widget in the sidebar with the next build date for all the scheduled projects. It also creates a column definition.

 

Trigger multiple builds with ease. Useful for Jenkins users with many jobs.

 

This plug-in makes it possible a execute a dry-run for the job.

Required

This plug-in is for rebuilding a job using the same parameters.

 

This plug-in allows you to synchronize your hudson configuration files with an SCM, allowing you to specify a commit message every time a config file is modified.

Required

This plug-in integrates GitHub to Jenkins.

 

The Job Import Plug-in lets you import jobs from another Jenkins instance.

Required

This plug-in integrates Mercurial SCM with Hudson. It includes repository browsing support for hg serve/hgweb, Google Code, Bitbucket, FishEye, KilnHG and RhodeCode. Features include guaranteed clean builds, named branch support, module lists, Mercurial tool installation, and automatic caching.

 

This plug-in allows a job to be run after all the immediate downstream jobs have completed.

 

Hudson/Jenkins' monitoring with JavaMelody. Open report after installation.

 File Leak Detector Plugin Runtime diagnosis tool for "too many open files" problem.
 CloudBees Monitoring Plugin This plugin provides metrics based monitoring for Jenkins.
Required

This plug-in allows Jenkins to invoke Gradle build scripts directly.

Required

This plug-in makes it possible to build a Visual Studio project (.proj) and solution files (.sln).

Required

Starts an Android emulator with given properties before a build, then shuts it down after.

 

This plug-in renders upstream and downstream connected jobs that typically form a build pipeline. In addition, it offers the ability to define manual triggers for jobs that require intervention prior to execution, e.g. an approval process outside of Jenkins.

Required

This plug-in allows builds to be automatically terminated after the specified amount of time has elapsed.

Recommended

Adds timestamps to the Console Output.

 

This plug-in implements a "promoted build" feature where a build of one job can be marked as "promoted" when it passes certain criteria.

 

This plug-in allows you to reschedule job upon failure.

Required

This plug-in adds the "task" action to the project for performing batch tasks on the server workspace.

Required

This plug-in allows you to manage slaves running on *nix machines over SSH. It adds a new type of slave launch method.

Required

Scriptler allows you to store/edit/execute groovy scripts on any of the slaves/nodes... no need for copy paste groovy code anymore. Beside administer your scripts, Scritpler also provides a way to share scripts between users via hosted script catalogs on the internet.

 

This plug-in shows a dependency graph of the projects. It uses dot (from graphviz) for drawing.

Recommended

This plug-in counts disk usage.

Required

This plug-in provides builders to build xcode projects, invoke agvtool and package .ipa files

RequiredAmazon EC2

This plug-in integrates Jenkins with Amazon EC2 or anything implementing the EC2 API's such as Ubuntu Enterprise Cloud (Eucalyptus).

Recommended

CloudBees Template Plug-in The template plug-in gives the Jenkins administrator the opportunity to provide users a simplified and directed experience for configuring jobs.

 CloudBees Folders Plugin This plugin allows users to create "folders" to organize jobs.
 CloudBees Folders Plus Plugin This plugin adds enterprise extensions to the CloudBees Folders Plugin.
 PowerShell Plugin Integrates with Windows PowerShell.
Recommended

Pipeline Plugin A suite of plugins that lets you orchestrate automation.

Related plugins:

RecommendedCloudBees GitHub Branch Source Plugin Multibranch projects and organization folders from GitHub.
RecommendedGitHub Organization Folder Plugin Pipeline-as-Code support for a whole GitHub organization. Scans all the branches & repositories in GitHub organization and build them via Jenkins pipelines automatically
 Multi Branch Project Plugin This plugin adds additional project types that create sub-projects for each branch using a shared configuration.
RecommendedJobConfigHistory Plugin Saves copies of all job and system configurations.
RecommendedJob DSL Plugin The job-dsl-plugin allows the programmatic creation of projects using a DSL.
RequiredGithub OAuth Plugin The GitHub Authentication Plugin provides a means of using GitHub for authentication and authorization to secure Jenkins.
 Docker Plugin This plugin allows slaves to be dynamically provisioned using Docker.
 Docker build step plugin This plugin allows to add various Docker commands into your job as a build step
 CloudBees Pull Request Builder for GitHub Automatically build GitHub pull requests
RequiredCloudBees Quiet Start Plugin Allows you to request that Jenkins be in the “quieting down” state after a restart.
RequiredRole Based Access Control Plugin (RBAC) CloudBees Jenkins Enterprise plugin that provides an authorization strategy that provides for role-based access control.
Convert To Pipeline converts jobs to scripted Pipeline jobs.

 

 

UsageBuild management, analysis and reporting
Required
This plug-in copies change log data to a later build when a build is deleted.

Required

Allow users to claim failed builds.

Recommended

This plug-in integrates Seleniumhq to Hudson.

Required

This plug-in visualizes the results of selenium tests.

 

This plug-in sets the description for each build, based upon a RegEx test of the build log file.

Required

This plug-in is used to search for strings in workspace files. The outcome of this search can be used to mark the build as normal or failed.

 

This plug-in integrates Cobertura coverage reports to Jenkins.

 

This plug-in scans for open tasks in a specified set of files in the project modules and visualizes the results.

 

This plug-in will allow you to manage global hudson build stats concerning build failures

 

This plug-in collects the Checkstyle analysis results of the project modules and visualizes the found warnings.

Recommended

This plug-in collects the compiler warnings of the project modules and visualizes the results.

 

This plug-in can archive certain files (attachments) together with your JUnit results.

Required

This plug-in shows all changes (also from dependent projects, sub-projects, ...) for a project

Recommended

This plug-in integrates Jenkins to Atlassian JIRA.

 

This plug-in collects the PMD analysis results of the project modules and visualizes the found warnings.

 

This plug-in collects the FindBugs analysis results of the project modules and visualizes the found warnings.

 

The continuous integration build game.

Required

Sends build notifications to jabber contacts and/or chatrooms. Also allows control of builds via a jabber 'bot'.

Recommended

This plug-in shows the parameter values on the main build page

 

This plug-in collects the duplicate code analysis results of the project modules and visualizes the found warnings.

Recommended

This plug-in will add a summary on the build of the artifacts uploaded to your maven repository.

Required

Display upstream changes plug-in.

Recommended

Trigger SonarQube analysis from Jenkins to quickly benefit from the leading open-source tool for continuous inspection.

 

This plug-in integrates JMeter reports and the JUnit reports to Hudson.

 Slack Plugin This plugin allows to post build notifications to a Slack channel.
 Gatling Plugin This plugin integrates Gatling, an Open Source stress tool, with Jenkins.
 CloudBees Restart Aborted Builds Plugin Tracks builds interrupted by abrupt halts and offers to restart them.
 Skip Next Build Plugin Stop running builds for a specified period of time (usually if there are known errors that are being fixed)

 

 

UsageView, display
Required
Adds a new high visibility view of project status.

 

Shows the actual node that a job was built on

 

More compact columns for showing last success and failure. Easier to understand, and takes less room in your view.

 

This plug-in shows the version of slaves column on "Manage Nodes" page.

Required

Customizable dashboard that can present various views of job information.

Required

Create smart views with exactly the jobs you want. Your smart views can automatically include or exclude jobs by using things like the SCM path or type, the job type, build statuses or trends or triggers, relevance to the logged-in user, email recipients, Maven configuration, job parameterization, and user permissions. Mix and match filters to narrow down to exactly what you want.

 

This is a general listview-column plug-in that currently contains the following columns: Test Result, Configure Project button, Disable/Enable Project button, Project Description, Build Description & SCM Type.

 

A plug-in for Jenkins that supports custom CSS & JavaScript. You can customize Jenkins's appearance (ex. his gentle face on the background).

RecommendedSuppress Stack Trace Plugin This plugin prevents the stack trace reported by Jenkins when a processing fails unexpectedly. This allows security sensitive deployments of Jenkins to minimize the information revealed to unprivileged/anonymous users.
 Embeddable Build Status Plugin This plugin allows Jenkins to expose the current status of your build as an image in a fixed URL.
 CloudBees Groovy View Plugin Adds a view type rendering a Groovy script. Useful in conjunction with Templates.
RecommendedBuild Trigger Badge Plugin This plugin displays icon(s) representing the cause(s) of a build directly in the build history. It lets you quickly know which cause triggered a build.

See for plugins under review.

Beside the pure Jenkins plugins, there are external tools related with Jenkins:

UsageTools
Required Nuxeo Jenkins report This Nuxeo plug-in generates reports from Jenkins builds inside Nuxeo. It helps to monitor the global CI status and to manage the duty planning between developers.
Required Jenkviz Tool to crawl a Jenkins site, producing a SVG output to render the build flow. It helps to improve the CI cycles.
Required SCM hooks: Jenkins GitHub plug-in Home-made scripts for Jenkins triggering and checkins mailing.
Under study Jennifer A node.js daemon that syncs Github pull requests with Jenkins jobs
RequiredXvfb and X11vnc There are available Jenkins plugins (to be tested) for managing those tools, we currently use Linux scripts.
RecommendedSonar An open platform to manage code quality.
Recommended Mylyn Hudson/Jenkins Connector Integrates Jenkins within the Eclipse IDE.
 Jenkins Mood widget Android widget for monitoring Jenkins.
  Jenkins build monitor Firefox addon for monitoring Jenkins.