Jenkins build pipelines

27 Apr 2016 . general

Plugins:

Jenkins was designed to use continuous integration, this is a built-in feature of the jenkins tool. Even though CI is built-in there are a number of extensions for Jenkins that should be considered using because they are more powerful than the built-in tools. The plugins I would recommend using for pipelines are the Conditional BuildStep Plugin, Parameterized Trigger Plugin, Delivery Pipeline Plugin and Build Pipeline Plugin.

The conditional buildstep and parameterized trigger plugin add extra depth and options to the out of the box solution (build other projects). The delivery pipeline plugin and build pipeline plugin are used for adding an overview of the buildflow you established.

Pipelines:

Pipelines are multiple jobs in a row each doing their own specified thing but relying on each other. With the build pipeline plugin you can follow each step in te process if its succesful, the amount of time it took to run, the health of the job and the date and hour of the build. It is also possible to configure the pipeline for manual builds in the middle of the pipeline. The configuration of the pipeline steps has to be done manually in the job configuration, this can not be done from the pipeline view config since this is used only for visualization. This means that it is perfectly possible to configure a pipeline without the Delivery Pipeline Plugin or Build Pipeline Plugin but there won’t be an overview.

buildpipeline view

A big downside of the build pipeline plugin is that it will only show builds in its overview that are triggered automatically by an upstream build, this means that the visualization won’t work with plugins like the Promoted Builds Plugin.

Continuous integration:

Build pipelines go hand in hand with continous integration, if you use one of these you automatically use the other. Continuous integration is a practice where team members integrate their work frequently which is followed up by an automatic build and automatic tests. The goal is to push changes as fast as possible to production by making a routine. There a are quite some benefits from CI:

continous integration

Conclusion:

Jenkins has an out of the box solution for pipelines but if you want an overview of said pipeline plugins are needed. In Jenkins you will probably find a plugin for every functionality you can think of but the hardest part is to find a way around the limitations of each plugin when they need to work with each other. The benefits outweigh the drawbacks of this tool heavily. It is easy to use, easy to integrate and is easy to extend the features.

Jenkins at your service!

Share this blogpost