A list of pragmatic plugins for pupils and pros alike.
In bygone times, Praqma composed a list of useful Jenkins plugins to spice up your CI life with. However, 2013 is ancient history and we’ve decided that our list is long overdue for a refreshing rewrite.
Now we present to you an updated list of handy plugins fixing problems you didn’t even realize you had.
Keeping a watchful eye on your server lets you avoid some sticky situations. Why not employ some plugins to provide basic monitoring of your master and slaves? Use the Disk Usage plugin to keep your disk space in check and the Monitoring plugin to oversee a whole slew of interesting metrics in its very own monitoring page.
Plugin: Nested View
Organizing your jobs into separate views helps keep your Jenkins organized. Larger Jenkins instances, however, are quickly overwhelmed with dozens of views. Sadly, vanilla Jenkins doesn’t allow for grouping of views, but that’s where the Nested View plugin comes in. It allows you to group relevant views together under a parent view, creating comfortably traversed view trees.
Jenkins needs to restart every now and then, oftentimes when installing or updating plugins. This plugin allows you to put new jobs on hold and reboot the server once your running jobs are finished. The reboot can be scheduled from both the Jenkins configuration page and the main dashboard.
Plugin: Green Balls
Jenkins uses blue balls to mark successful builds for a reason. However, enough people prefer green balls for this plugin, which changes the ball color, to be one of the most popular plugins out there.
Plugin: Build Pipeline
The Build Pipeline plugin visualizes your up- and downstream connected jobs in a prettified view and helps you get a nice overview of your build process, start to finish. It also comes with the handy ability to add manual triggers to your jobs. This allows you to fit external processes, such as a review before deployment, into your pipeline.
Promote your builds as they go and decorate them with informative badges. The Build Trigger Badge plugin decorates your builds with a small badge depicting the build cause. Was it triggered manually, by an SCM change, or did it come from upstream?
Use the Promoted Builds plugin to take it one step further, promoting and decorating your builds throughout your entire pipeline. With every passing step, you can decorate your build with a badge depicting its success. Just a glance at a build will tell you what originally started it and how well it performed further down the pipeline. For the creative users out there, it’s possible to trigger jobs when certain promotion levels are met.
Piece together your dream dashboard and display the status of your key jobs on that big monitor by the coffee machine. Sip your coffee with pride as you bask in its green glow (or scurry back to your desk to fix that last commit instead). Gather and display interesting statistics about your builds on a different dashboard, letting you to identify fragile parts of your build process and pinpoint its ills.
Plugin: Job DSL
Storing your job and pipeline configuration as code comes with a myriad of advantages. It allows you to version control your configuration, regenerate your jobs on the fly, spin up and configure new Jenkins instances in a heartbeat, etc. The Jenkins Job DSL is a popular and exceptionally well documented Groovy DSL for configuring pipelines and jobs via scripts. Sinking your teeth into this one will doubtlessly open up some new doors.
Reduce redundancy and increase reusability of your jobs by parameterizing their variable values. Use the EnvInject and Environment Script plugin to help you inject necessary values into your jobs. They’re surprisingly flexible and can really help you construct generic jobs. As an added bonus, once your jobs are parameterized, it will be trivial to convert them to clean scripts using Job DSL.
A good build pipeline records a vast assortment of interesting metrics regarding your code (and an even better pipeline sets warnings and thresholds on them). Below are a few plugins to help you analyze and point out frailties in your code.
Keep track of compiler warnings thrown in your builds, they’re a great indicator of potential problems in the code. Don’t panic if your first build returns hundreds of issues, trends are more important than absolute values. You can steadily bring those numbers down with diligence and you’ll rest easy knowing the code gets a little better with every commit.
Round up the results of your tests and plot them in helpful graphs and statistics. (You do have tests, don’t you?) Identify fragile tests and invest some time to fortify them (or the code they’re testing). Keep an eye on your test coverage trend, challenge yourself to increase that percentage with every commit.
Plugin: Task Scanner
//TODO you left last friday? Or that
@deprecated method you still need to replace throughout the code?
We know you’ll go back to fix them eventually, but don’t let them pile up too high, use the Task Scanner plugin to keep them in check.
It comes with a bunch of handy features like trend reports, prioritization and thresholds.
Useful for keeping track of what changes you (or that bozo Jim across the room) have made to your Jenkins jobs. The plugin stores a copy of a job’s configuration whenever it is changed, allowing for change tracking, diffing and painless configuration restoration.
Hungry for more Jenkins customization? Dig around in the list of available plugins under the Jenkins plugin manager. Search and ye shall find!
Did we miss an awesome plugin? Perhaps even an up-and-coming plugin you’ve been working on? Let us know! We’d love to try it out. If we like it, it might even end up on the list!
Had enough of sluggish polling? With instant Artifactory event triggers you can give responsiveness in Jenkins a real boost. Here’s an easy way to set it up.
A super easy configuration guide
With the arrival of microservices code is becoming disposable. Does this mean that we no longer need maintainable code? Is it the end of refactoring?
Still relevant or increasingly redundant?
In software development tight coupling is one of our biggest enemies. On the function level it makes our application hard to change and fragile. Unfortunately, tight coupling is like the entropy of software development, so we have always have to be working to reduce it.
How to safely introduce modular architecture to legacy software.
I am an Atlassian certified trainer and over the years I have been spending much time with clients and their Jiras. In this blogpost, I have collected some small tips and tricks that will make your Jira usage better.
Jira Software is a powerful tool deployed in so many organizations, yet in day to day usage people are missing out on improvements, big and small.
In this post, I’ll take a closer look at the version of Jenkins X using Tekton, to give you an idea of how the general development, build, test, deploy flow looks like with Jenkins X. How does it feel to ship your code to production using a product coming from the Jenkins community that has very little Jenkins in it?
A crash course in Jenkins X and how to test it out on a local Kubernetes cluster
In this blog I will show you how to create snapshots of Persistent volumes in Kubernetes clusters and restore them again by only talking to the api server. This can be useful for either backups or when scaling stateful applications that need “startup data”.
Sneak peak at CSI Volume snapshotting Alpha feature
When I read Fowler’s new ‘Refactoring’ book I felt sure the example from the first chapter would make a good Code Kata. However, he didn’t include the code for the test cases. I can fix that!
Writing tests for ‘Theatrical Players’
Nicole Forsgren and the Accelerate DORA team has just released the newest iteration of the State of DevOps report. The report investigates what practices make us better at delivering valuable software to our users as measured by business outcomes. Read on for our analysis of the report, and how it can be best put to use.
The latest drivers of software delivery performance
A major challenge of software development is that our work is by and large invisible. This makes our folklore essential in business matters. Some of our commonly used arguments and visualizations are digital urban legends rather than solid foundations for informed decisions. Here, we’ll go through a few examples and some measures to address our misconceptions.
How the stories we tell influence our decisions
When you embark on your cloud native journey there will be important choices to make about cloud providers, continuous deployment, environments’ setup and separation. This guide will help you make the right choices by sharing lessons learnt from running cloud native apps in production.
Kubernetes has become the de facto container orchestration platform. When we help clients of different sizes and domains start their cloud native journeys in Kubernetes, we assist them in making sound decisions and technology choices. There is no one-size-fits-all solution when it comes to choosing cloud providers, CI tools, continuous deployment pipelines etc., so it is important to make the right decisions at the start. Failing to do so can be very costly in terms of lost time and money.
How to make the right technical choices on your cloud native journey
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps