Skip to content

Wakaleo Consulting

  Home Blog Build Pipelines with Jenkins/Hudson
  • Training and Mentoring in Test Driven Development
  • Expertise in Automated Acceptance Tests and ATDD
  • Training and Mentoring in Test Driven Development
  • Expert Jenkins/Hudson training and mentoring
  • Training and Mentoring in Test Driven Development
  • Training and Mentoring in Test Driven Development
  • Expertise in quality development and testing practices
  • Expertise in Continuous Integration and Continuous Delivery
  • Expertise in Continuous Integration and Continuous Deployment
Build Pipelines with Jenkins/Hudson PDF Print E-mail
Monday, 07 March 2011 23:12
This article is an extract from the upcoming book Jenkins: The Definitive Guide, to be published in the coming months with O'Reilly..

One of the more interesting plugins to emerge over the last few months is the Build Pipeline plugin, written by the folks at Centrum Systems. The Build Pipelines plugin takes the idea of build promotion further, and helps you design and monitor deployment pipelines. A deployment pipeline is a way of orchestrating your build through a series of quality gates, with automated or manual approval processes at each stage, culminating with deployment into production.

The Build Pipeline plugin provides an alternative way to define downstream build jobs. A build pipeline, unlike conventional downstream dependencies, is considered to be a linear process, a series of build jobs executed in sequence.

To use this plugin, start by configuring the downstream build jobs for each build job in the pipeline, using the 'Build other projects' field just as you would normally do. The Build Pipelines plugin uses the standard upstream and downstream build configurations, and for automatic steps this is all you need to do. However the Build Pipeline plugin also supports manual build steps, where a user has to manually approve the next step. For manual steps, you also need to configure In the Post-build Actions of your upstream build job: just tick the 'Build Pipeline Plugin -> Specify Downstream Project', select the next step in your project, and tick the 'Require manual build executor' option, as shown here.

Configuring a manual step in the build pipeline

>Once you have set up your build process to your satisfaction, you can configure the build pipeline view. You can create this view just like any other view.

Creating a Build Pipeline view

There is a trick when it comes to configuring the view, however. At the time of writing, there is no menu option or button that lets you configure the view directly. In fact, you need to enter the URL manually. Fortunately, this is not difficult: just add "/configure" to the end of the URL shown when you are displaying this view. For example, if you have named your view "phoenix-build-pipeline", as shown here, the URL to configure this view would be "http://my_hudson_server/view/phoenix-build-pipeline".

Configuring a Build Pipeline view

The most important thing to configure in this screen is the initial job. This marks the starting point of your build pipeline. You can define multiple build pipeline views, each with a different starting job. You can also configure the maximum number of build sequences to appear on the screen at once.

Once you have configured the starting point, you can return to the view to see the current state of your build pipeline. Jenkins displays the successive related build jobs horizontally, using a color to indicate the outcome of each build. There is a column for each build job in the pipeline. Whenever the initial build job kicks off, a new row appears on this page. As the build progresses through the successive build jobs in the pipeline, Jenkins will add a colored box in the successive columns, indicating the outcome of each stage. You can click on the box to drill down into a particular build result for more details. Finally, if a manual execution is required, a button will be displayed where the user can trigger the job.

Configuring a Build Pipeline view

This plugin is still relatively new, and does not integrate with all of the other plugins we have seen here. In particular, it is really designed for a linear build pipeline, and does not cope well with branches or parallel build jobs. Nevertheless, it does give an excellent global vision of a build pipeline.

Tags See All Tags Add New Tag...

Please Enter New Tags Separated By Comma's
  Or Close



Trackback(0)
Comments (7)Add Comment
0
Great!
written by Andreas Ebbert-Karroum, March 08, 2011
I have been waiting for this view ever since I attended the continuously delivery session at Agile 2010. Thanks for pointing me to it!
0
Thanks
written by Felipe, March 10, 2011
I really appreciate your effort and sharing this excellent work.

Thanks so much.
0
Thanks John.
written by Geoff Bullen, March 11, 2011
John - thanks for encouraging people to try this out. It's only it's first release, but we find it really useful.

Everyone. Please report bugs on http://code.google.com/p/build...gin/issues . Or suggest enhancements at http://www.centrumsystems.com.au/blog/?p=121

0
New Release
written by Geoff Bullen, April 14, 2011
Version 1.1(.1) is out. Please try it out guys and give us some feedback. This release fixes some major issues and also has some big features. Such as support for forked pipelines (but not joins) as well as a major GUI refresh.

Release notes here: http://www.centrumsystems.com.au/blog/?p=165
0
Great!
written by Prabodh Jena, August 10, 2011
This looks great to me though I am yet to try
0
Using different binaries
written by Jens Rantil, January 24, 2012
This looks awesome. Just curious, is it possible to have Jenkins use the same binaries for every step in the pipeline somehow?
0
re: Using different binaries
written by Nacho Sánchez, February 02, 2012
Jens, you could use the Copy Artifact plugin in each step:

https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin

Write comment

busy