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.
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 pageto see if there are any warnings or deprecation notices for the plugin. -
Check the
plugin pageto see if there are any currentMaintainersof 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.