Despite facing increased competition, Jenkins remains one of the most popular continuous integration servers. It was created during the infamous Hudson community split which occurred after software giant Oracle took control over the open sourced Hudson in a move that inflamed the development community and set the internet alight with heated debate.
The good news for developers everywhere who believe in the importance of keeping open sourced software out of the hands of large corporations is that in the subsequent Hudson vs. Jenkins battle, it was Jenkins that was to victorious.
Part of the reason behind this was the sheer number of superb Jenkins plugins that have been developed by the Jenkins community. At the current time, Jenkins has more than 1,500 plugins that help developers automate large parts of project development. These plugins can help with tasks ranging from helping with continuous delivery, transfer files from one project to another, display Jenkins projects in JIRA, and so on, and so on.
Since each of these plugins solves different problems, it is not an easy task to choose the top Jenkins plugins. So rather than stir up controversy, in this article, I aim to detail some of the most useful plugins that help developers save time as well as making their lives easier.
In order to broaden the appeal of this article, I have chosen a mix of plugins, some of which will appeal to individual developers and others that will be useful to large dev teams.
Best Jenkins Plugins
A problem that many developers who rely on Jenkins to work on multiple jobs will have experienced is having to repeatedly configure each new job they start. This is not only very time-consuming (considering that many full-time programmers work on 100’s of jobs per year), but also can really make their job feel monotonous too.
Download Our Project Specification Template
Jenkins Job DSL plugin allows programmers to use Groovy to define jobs and configure a common set of items for them. The plugin then maintains these scripts and updates job information automatically. This allows programmers to create standardized templates using the Domain Specific Language (DSL), which makes setting up new projects a breeze.
For project managers and dev teams who are involved with large-scale project development, keeping track of job progress can be a nightmare at best. Jenkins Job Generator plugin allows project managers in charge of a particular Jenkins pipeline to authorize developers in their team to create new job templates that can then be used to start new projects/branches of development.
While it is possible to do this manually, once again this task can be very time consuming, especially if your project has multiple pipelines. The advantage of the Job Generator Plugin over the Job DSL plugin above is that it doesn’t require programmers to know Groovy.
This is a really cool tool for developers to play with. It allows developers to capture reports from a whole range of testing tools that include JUnit, JMeter, Twitter’s Lago and Taurus. The information regarding your project’s performance can then be viewed in Jenkins via charts and graphs. This is a great example of a top Jenkins graph plugin.
This highly popular Git plugin for Jenkins allows developers to easily automate code review. Upon initiating a pull request, the plugin will retrieve the source and build results so that developers can quickly see if their code is right.
This great plugin also allows developers to initiate automatic merging provided that the code passes the review.
Released in December 2016, the JIRA plugin pretty much does what it says on the tin. It allows developers to integrate JIRA into Jenkins. Many development teams use JIRA quite a lot, so being able to view Jenkins through JIRA helps to streamline the development process.
For those dev teams who are running multiple projects at the same time, Jenkins can be frustrating at times because it doesn’t really offer great server scalability. This problem is solved by the Kubernetes Plugin that allows those developers using Kubernetes to automate the scaling process of running Jenkins slaves in the Kubernetes environment.
Read How We Helped a Marketing Company to Build a Back-Office Custom Ads Dashboard
For those developers who are using Docker Swarm then Jenkins Self-Organizing Swarm Modules Plugin will allow you to add scalability to Jenkins in the same way. Once installed, both versions will let you get on with your Jenkins job without having to worry about scalability issues.
While continuous integration is a great way to develop projects, it also throws up a number of challenges too. Keeping track of all aspects of job progression including quality assurance can be quite a challenge when dealing with complex multilayered projects.
Jenkins Build Pipeline plugin allows project managers to create a chain of connected jobs so that they can get a much clearer picture of all stages of the project pipeline. The plugin allows managers to decide on which steps can be automated or require manual intervention. This superb plugin really lets developers take full control of their projects, which is why it is used by so many software development teams.
Lost configuration data has kept many a project manager awake at night. Not only does it take time to put right but it is entirely preventable too. In the same way that code can be backed up to repositories, with the help of this handy plugin, Jenkins configuration files can be too.
This SCM Sync Configuration Plugin allows for automated config file backup to an SCM repository. Not only that, but this plugin will also track any changes thereby giving managers a clear view of any alterations. It is a popular Jenkins backup tool that should be included in any Jenkins developer’s toolbox.
Maven is much loved for the providing an easy to use standard project build layout. This helps developers save time at the start of projects by allowing them to jump straight in at the deep end and not to have to worry about this aspect of familiarizing themselves with the project.
This plugin lets Jenkins monitor Maven builds to allow for automatic archiving of reports and help with parallel or incremental module builds etc. It is easy to set up and doesn’t require much in the way of Jenkins configuration.
With a huge number of developers still using Apache Subversion, there was an overwhelming need for a Jenkins plugin to integrate the two. This plugin will monitor changes and trigger new builds as and when required as well as automatically updating the workspace so it is ready to start the new build.