BuildBug

Name BuildBug
Version 1.0
Product Versions Bamboo 2.0
Author(s) Brad Harvey
Homepage http://confluence.atlassian.com/display/CODEGEIST/BuildBug
Price Free
License BSD
JavaDocs See Source
IssueTracking http://developer.atlassian.com/jira/browse/BBB
Download JAR buildbug-1.0.jar
Download Source svn buildbug 1.0

Description

BuildBug is a Bamboo plugin to create JIRA issues when a build breaks.

Why is this Useful?

I see two main reasons to use this plugin. Firstly, the created JIRA issue provides immediate visibility to the build problem. You can assign the issue to a specific developer once the cause of the failure is known so everyone can see that someone has taken ownership of the problem.

The second reason is less apparent but potentially more beneficial. A build failure is usually associated with some form of waste:

  • Someone has to investigate the reason for the failure.
  • Someone has to fix the failure.
  • Potentially many people are held up from their integration tasks since they can't trust the codebase while the build is broken.

You can use the created JIRA issue (potentially in combination with work logs, custom issue types, work flows, resolutions etc) to record the following information for each build failure:

  • How much waste,
  • The cause of the waste.

Then you can use JIRA's search/reporting features to identify trends from your build failures, which will hopefully allow you to find and eliminate recurring problems.

For example, you may find a lot of builds failing due to infrastructure issues - this would allow you to better quantify the impact of these problems.

Features

When a Build Breaks, a JIRA Issue is Created.

When a build breaks, a new issue is created. The project, assignee, issue type and priority are configurable.

The following information is included in the issue:

  • Why the build failed.
  • Test Summary if tests were found.
  • List of Authors and associated JIRA issues based on commits.
  • A link to the full build log.

BuildBug adds Comments for Subsequent Builds.

The JIRA issue will show the current state of play because BuildBug adds a comment describing the last build result each time a new build completes, until the build is fixed.

Navigate Between Bamboo and JIRA

It's easy to jump back and forth between the JIRA issue and Bamboo build results.

There are links to Bamboo in the JIRA issue description/comments.
With the JIRA Bamboo plugin installed, the "Related Builds" tab shows the builds.
In Bamboo, the JIRA tab shows related JIRA issues including broken builds.

Installation/Setup

Prerequisites

The BuildBug plugin relies on Bamboo JIRA Integration. Please ensure your JIRA integration is working before attempting to install this plugin. One difference is that the JIRA user you supply must have permission to create JIRA issues in the projects you select for each build plan.

Install the Plugin

Install BuildBug as per 6.3 Installing a new Plugin.

Enable BuildBug for a Build Plan

To enable BuildBug, go to the "Post Actions" tab in the configuration for a build plan and scroll down until you see the BuildBug section.

Select the checkbox to enable BuildBug for this build plan.

Select Issue Details

You must select a project, assignee, issue type and priority for the JIRA issue that will be created. The values for the dropdowns come directly from JIRA. Assignee will be validated when you hit save.

There's also an option to use the author from the commit details as the assignee. This will only kick in when a single author is responsible for all the commits contributing to the build. When this is not the case (no commits, or multiple authors) or when the author is not a user in JIRA then the assignee field will still be used.

That's it! Now you get to break the build to test it out.

Possible Future Features

Something that could be useful is changing the state of the JIRA issue. For example, it could be resolved when the build is fixed. I'm not sure how complicated custom workflows will make doing this, so I'll hold off on this one unless people ask for it.

Release Notes

Version 1.0 - codegeist ready!

Download JAR buildbug-1.0.jar
Source svn release_1.0
  • BBB-2 Improvement - Include author and jira issues from commit messages in comments

Version 0.9 - release candidate

Download JAR buildbug-0.9.jar
Download Source buildbug-0.9.zip
  • New Configuration option - Priority. This controls the priority of the created JIRA issue.
  • New Configuration option - Assign to Committer. If enabled, the JIRA issue can be assigned directly to a committer. This will happen if there is a single committer that contributed to the build.

Version 0.4 - track fixing builds

Download JAR buildbug-0.4.jar
Download Source buildbug-0.4.zip
  • Comment on the issue and add a change entry when the build is fixed
  • Link to the build log in the JIRA comments
  • Include test results in the JIRA comments

Version 0.3 - useful for raising visibility of build problems by creating JIRA issues

Download JAR buildbug-0.3.jar
Download Source buildbug-0.3.zip
  • Visible/Clickable links between the JIRA issue and Bamboo build.
  • Configuration Enhancements
    • Select the project from a dropdown list of projects retrieved from JIRA
    • Validated that assignee is a valid JIRA user
    • Select issue type from a dropdown list of issue types retrieved from JIRA.
    • These configuration features degrade gracefully when JIRA can't be contacted during configuration (don't prevent the build plan from being saved).

Version 0.2 - proof of concept

Download JAR buildbug-0.2.jar
Download Source buildbug-0.2.zip
  • Migrate to Bamboo2
  • Only one issue per failure period is created.

Version 0.1 - proof of concept

Download JAR buildbug-0.1.jar
Download Source buildbug-0.1.zip
  • Can configure whether to enable BuildBug for a build plan, and a Project and Assignee
  • Use JIRA configuration details from JIRA plugin

Screenshots

Labels

codegeist_2008_bamboo codegeist_2008_bamboo Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Apr 16

    Edwin Wong says:

    Hey Brad, Awesome idea. Looking like it's coming along nicely! It would defini...

    Hey Brad,

    Awesome idea. Looking like it's coming along nicely!

    It would definitely be a good idea to integrate the build with the JIRA issue. That way - if you have the Bamboo plugin switched on in JIRA, you can click back to it!

    The other thing - and I think you have this down, is that we need someway to prevent Bamboo continuously "spamming" JIRA on every failure. A JIRA issue per Bamboo failure period is definitely a good idea.

    Cheers,
    Edwin

    1. Apr 16

      David Peterson says:

      Yeah, one issue per failure period would be good. Although you could add a comme...

      Yeah, one issue per failure period would be good. Although you could add a comment with some detail about changes in succeeding failing builds. Not strictly necessary though, since you can get that information in Bamboo. However, if your developers have put the original JIRA issue they're fixing in the checkin comments, adding the 'changed in this build' comments into the 'failure' issue will automatically link the 'failure' issue with the original JIRA issue the developer was supposedly fixing. Neat

      1. Apr 20

        Brad Harvey says:

        Thanks Edwin & David for the feedback. I'll make one issue per failure period a ...

        Thanks Edwin & David for the feedback. I'll make one issue per failure period a priority after Bamboo 2 support.

        (Edit: Feature implemented in 0.2)