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.
- CloudBees Core
- CloudBees Jenkins Enterprise
- CloudBees Jenkins Platform - Client Master
- CloudBees Jenkins Distribution
- Jenkins LTS
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://go.cloudbees.com/plugins/) 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 current
Maintainersof 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-ci.org/ , 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.