The Jenkins is the best freeware tool to fasten your development cycle. It helps you to increase team productivity with CI (continuous integration) and CD (continuous delivery). In the development phase, you have to test changes more frequently. A single-click build and deploy job reduce time to validate your modified codebase, and you can get rid of all manual steps overhead.
The plugins increase Jenkins capabilities and add some of the cool features which help you to increase productivity make your build space more secure. There are lot’s of plugins available but I would like to share 7 plugins which you must install.
1. ThinBackup plugin
This is the first plugin you should install after login into Jenkins. It helps you to backup your jobs, configuration, build history etc. It is easy to configure and you can tweak backup setting with the help of a backup manager. It has the capability to trigger backup job manually or use can schedule daily automated backup. To configure this plugin navigate to Manage Jenkins –> thinBackup –> setting:
It all depends on how you want to schedule backup as with above setting you will have backup of each hour and whenever you want to restore deleted job select Jenkins –> thinBackup–> Restore. In a drop down menu it will list you all backups available to restore:
2. Audit Trail
When there are multiple users using Jenkins to manage jobs and you want to track footprints for auditing purpose, this plugin will help you. It stores all user activity in a log file. This log file can be stored on local machine or you can archive this to a remote location with Syslog. If you are interested in recording only certain events like create, delete this can also be configurable. To select configuration go to Manage Jenkins –> Configure System and on this page look for Audit Trail section:
3. Mask Passwords Plugin
This plugin masks your credentials which you are defining as plain text format in job configuration console. It helps you to tightly restrict access to sensitive information. While creating a job in “Build Environment” section select check-box in front of “Mask passwords” and define your credentials:
These credentials are invoked in as a variable and ciphered in the job configuration file:
4. Global Build Stats Plugin
When you are leveraging Jenkins and with the growth of infrastructure it is most important to keep an eye on its capacity. So you can scale Jenkins before things go out of control. This plugin is useful to create daily/weekly/monthly report of build status. Once you have installed it you need to set graph property to initialize chart first time from Manage Jenkins –> Global Build Stats –> Create a new chart configuration:
There are multiple options you can set from your choice but don’t forget to enable “Average build time” and “Total build time”. Once you save this configuration a historical chart will be available and you can plan your system scalability.
5. Configuration Slicing Plugin
You are doing well with your setup and one day you have to modify email id in all jobs then it will take a lot of time to finish your task. You can use this plugin to make your work more productive as it has the functionality to perform mass configuration of project properties. However, as of now it supports only selected configuration changes but still is useful to have in your installed list. It shows up under “Manage Jenkins” –> “Configuration Slicing”. In below example, we have changed the email address for multiple jobs at once.
6. Disk Usages
This plugin will display you disk used by the project and keep updating the values after 1 hour. To view disk usages trend graph of all jobs you can select Disk usage from Jenkins dashboard left panel. You can easily find out sudden change in disk utilization and can correct it if there is something wrong going on.
If you want to check usages of a particular job the detail information of used space and it’s workspace also be available on the project page of each job.
7. Build Name Setter Plugin
When you install this plugin you can change default build name from #1, #2, #3 to something of your choice. Using this you can segregate the multiple jobs based on env/project name. It is configurable in job configuration page under build environment section select Set Build Name and set name which makes suitable for you.
I would strongly recommend you to never use a fix name and always include a dynamic identifier like $(BUILD_NUMBER).
The choice of plugins differ from use case to use case but I found these plugins most useful and make sense for everyone. There are more plugins available and free to use so go ahead and spread your wings.