How to evaluate a Jenkins plugin

Article ID:360029674131
2 minute readKnowledge base

Issue

I would like some general guidelines on what factors to consider before starting to use a Jenkins plugin, tips on choosing plugins, and plugin best practices.

Environment

Resolution

You may want to consider the following points:

  • First off, consider what are the key features of the plugin that you are wanting to use.

  • Consider if you could achieve the same outcome by running a script written in shell, python, perl, powershell, or your preferred scripting language.

  • Most tools have well documented command line interfaces or APIs.

  • By using a CLI or API, you will have the ability to quickly see the exact problem, be able to reproduce it manually, and be able to fix it yourself.

  • Some plugins implement very complicated operations, or do UI visualizations or reports, which generally make it infeasible to implement with a script.

  • Check the plugin page (at https://plugins.jenkins.io/ or https://docs.cloudbees.com/plugins/ci) to see how recently the plugin was updated:

  • If it was updated in the last year, that is a good sign

  • If it was updated more than a year ago, that can be a warning sign, and you may encounter issues when installing or upgrading on recent Jenkins versions

  • Check the plugin page to see if there are any warnings or deprecation notices for the plugin.

  • Check the plugin page to see if there are any current Maintainers of the plugin. If the plugin has no current maintainers, you may have to fix problems with the plugin yourself.

  • Consider if there are commercial support options for that plugin, or if the plugin is part of the CloudBees Assurance Program and the related CloudBees Plugin Support Policies.

  • For Tier 3 Community plugins, these plugins will be supported on a commercially reasonable basis. This usually implies guidance on using the plugins, diagnosis and are not subject to the CloudBees Support Levels and Response Times.

  • Search in JIRA to see what are the current unresolved bugs and feature requests for the plugin at https://issues.jenkins.io/secure/Dashboard.jspa, you could do an advanced search for project = JENKINS AND component = PLUGIN_ID

  • take note of any high priority bugs

  • you could review what type of improvements, tasks, and bugs have been fixed in the past year or two, to understand how actively the plugin is being maintained

  • Check the GitHub page for the plugin, usually under https://github.com/jenkinsci/, and see the Insights page (/graphs/contributors) to see how many people have contributed to the plugin

  • Multiple contributors is a good sign

  • One single person can be concerning, in case they decide to stop maintaining the plugin in the future

For any plugin installations or upgrades, it’s always recommended to take a full backup of your JENKINS_HOME directory before you install or upgrade any plugin.

This is because config.xml files in the JENKINS_HOME can be modified during the install or upgrade of a Plugin, and if you run into any problem, the safest (and sometimes only, depending on the plugin) way to revert is to restore the backup of the JENKINS_HOME directory that was taken before the change was made.