14 must have Jenkins plugins to increase productivity


Jenkins is vastly used continuous integration tool in current IT industry which is build and used around plugins. It has a core Jenkins tool and there are 100s of plug and play plugins available to enhance its power and usability.

Here let’s take a look few best jenkins plugins to increase the productivity.

  1. Global Build Stats Plugin It’s essential to know your current capacity, usage and capability before you go for capacity planning or system requirement because very first question is “what is your current capacity?”                                                                                                                          You need to know how many builds are happening on daily, weekly basis. How much time is taken by various builds what are the waiting period. This Plugin give you enough data to answer the question. This plugin can provide you data as graph which can be further consumed.
  2. Job Generator Plugin– In big or growing organization, its bit difficult to maintain the jobs for a project when developers are working on various branches and releases. You want to give access to developers to create their own job and at the same time you don’t want developers to create arbitrary jobs which may not fall under company standard. This plugin gives you flexibility to define template and developers can create new job with the help of job generator template, further configuration access can be disabled via roll based authorization plugin.
  3. disable-failed-job -  In rapid development environment failing job due to various unnecessary reason is a pain, It’s difficult to keep track of such jobs and disabled/delete it. This plugin can solve the problem by defining the upper number of consecutive failed builds and then disable it automatically.
  4. embeddable-build-status – This plugin can give you a link which can be pasted anywhere (example github project) to expose the status of the build and user can get the current state of the job while looking at project.
  5. Exclusion – This plugin enables you to handle conflicts between jobs. You can assign a resource (or lock) in multiple job, when build gets executed, it will acquire the lock and other build (if fired)  will wait until lock is releases.
  6. GitHub Pull Request Builder - This is one of the best plugin I found to provide support to automate code review up to certain extent in github. This plugin does amazing job once define for the project. For any new pull request this plugin does fox merge and run the build on the code and gather the necessary static analysis (if configured) or build result and comment back the status to pull request. This helps reviewer to get the idea of the health of the code which is going to be merged. You can even define the automatic merge if build passes.                                                                                      Same sort of plugin is also available for gitlab which works on similar way.
  7. Hudson Extended Read Permission Plugin - During initial days of Jenkins setup we have not given configure access to any developer to make sure they do not change anything but Developers used to ask to view configuration to know how job has been setup, they may want to see the build steps. Extended read plugin can provide option to developer to view the configuration without giving them write access. 
  8. Post+build+task -  There may  be need of performing some action on the basis of the result of build, for example if build is passed you may want to upload artifact(ex debian) to some repo(apt) or perform some packaging part or anything. In case of failure you may want to roll back something (like release) . This plugin helps you to define the pass/fail criteria and let you decide what to do after that.
  9. JDK Parameter Plugin This plugin is useful for the organization where many project are using different versions of java, this plugin let you choose the java version during run time of the build.
  10. Job Configuration History Plugin - Ah! This is my one of the favorite plugin. This plugin lets to keep track of config change in each build and who did it, You can easily revert back to any previous config if you want.
  11.  Multiple SCMs pluginDefault SCM section provides only one source control tool URL option, what if you want to check out from more than 2 repos from multiple source control tool (like svn and git). This plugin will come handy in such scenarios. This will facilitate user to add any number of SCM URL to checkout the code.
  12. Parameterized Trigger plugin - Again my favorite plugin. This allows you to have user input as variable and use in on run time. This is the most used plugin in dynamic environment where you have lots of options and user define values to be used in the build which may keep changing.
  13. Pre SCM BuildStep Plugin - Just like post build task, You may have requirement to perform some action even before checkout happens for the job , for example you may want perform merging of the branch before the build and then checkout. This plugin can be handy in various conditions and gives you flexibility which running the job.
  14. SCM Sync Configuration Plugin  - backup this is the most important task of any administrator. Which out regular backup, they whole system cannot be reliable, This plugin provided you feature to backup live Jenkins configs to any source control tool. If will keep committing the config files (including Jenkins and jobs) to SCM repository as soon as there is any change.
Above are Just few best jenkins plugin which can help to take maximum out of your jenkins instance.

Popular posts from this blog

Manage Docker images on local disk

Gradle or Maven - A Dilemma

Code Review - Write your code right