Dynamic BuildGroups in CDash

October 23, 2015

New in CDash is the concept of dynamic BuildGroups.  A dynamic BuildGroup will always show you its most recent results, no matter when they occurred.  Contrast this with our default (daily) BuildGroups, which show all the builds that occurred during a given day.

This feature was created with two use cases in mind:

1) Increased visibility for periodic jobs.  If you have a job that only runs once per week, you can use a dynamic BuildGroup to keep its results on the front page until a new run occurs.

2) Better project health monitoring.  Suppose you have a trusted subset of continuous integration builds.  If you add them all to a dynamic BuildGroup, it becomes much easier to tell at-a-glance if the current state of your project is healthy or not.

Note that placing a build in a dynamic BuildGroup does not remove it from its daily BuildGroup.  This means that it will potentially show up in more than section of your dashboard.

Instructions

In this section we demonstrate how to setup a dynamic BuildGroup.  Here’s an old build that we want to keep on the front page of the dashboard (use case #1 from above).

 

1) We login as an administrative user for this project and navigate to the manageBuildGroup page.

 

2) We click on the Create new BuildGroup tab.  We provide a name for the new BuildGroup, set Build Type to Latest, and click Create BuildGroup.

 

3) (Optional) We navigate to the Current BuildGroups tab to change the order they appear in on the dashboard.  You can skip this step if you’re okay with your new dynamic BuildGroup group appearing last on index.php.

 

4) We click on Dynamic BuildGroups and add one or more rows to the new BuildGroup.

Add a build row to the following dynamic group: the name of the dynamic BuildGroup that you created during step #2.

Show the most recent build from the following group: the BuildGroup where your desired content normally appears.

Site: the site that performs this build.  Select Any if this build is not tied to a particular site.  This drop-down box is populated with sites that have submitted to this project during the last seven days.

Build name contains: The name of the build that you‘d like to add to the dynamic BuildGroup.  This fields performs substring matching, so if you put “c++” here it will find the newest build whose name contains “c++”.  Use % as a wildcard to match one or more characters.

After you click Add content to BuildGroup a new section entitled Existing Build Rows will appear at the bottom of the page.  This is where you can delete contents from your dynamic BuildGroup.

 

5) Now that we’ve defined the new BuildGroup, all that’s left to do is to navigate back to the dashboard and verify that it contains the content that we expect.  Notice how our dashboard is now displaying the build result from yesterday under our new Current BuildGroup.

Leave a Reply