Bamboo Tag Build Plugin

Name Bamboo Tag Build Plugin
Version 1.1.0
Product Versions 1.2.4
Author(s) David Peterson [CustomWare]
Organisation CustomWare Asia Pacific
Homepage  
Price Free
License BSD
JavaDocs  
IssueTracking TBA
Download JAR bamboo-tagbuild-plugin-1.1.0.jar
Download Source CODEGEIST:Archive Subversion

Description/Features

Adds a tab to projects which lists any existing tags which already exist and allows you to build them with Bamboo. This is handy when you want to do a one-off build of a tag, or use Bamboo to create your project with the full test reporting, Clover analyzing and other handy features that come with it.

Note
Currently this plugin only supports projects which use a Subversion repository. CVS support is in progress.

Installation

  • Download the CODEGEIST:plugin jar.
  • Copy it into the 'webapp/WEB-INF/lib' directory of your Bamboo server.
  • Restart Bamboo.

Usage

There are two main features - the 'Tags' tab and a custom build notification.

The 'Tags' Tab

This is the main location of interest for the plugin. It lists any existing tags (as well as who created them and when), provides an option to 'Checkout and Build' the specific tag, and lists any existing builds for each tag. It looks like this:

When you click 'Checkout and Build' for a particular tab, it will do the following:

1. Create a clean checkout of the specified tag from your repository.
2. Execute a build for that checkout using the current build settings for this project.
3. Create a record for the build as for a normal 'Manual build' of the project, along with any artifacts, test cases, etc that you would usually have.
4. Notify anyone registered with a 'Builds From Tags' notification that the tag build occurred.

If you want to check that a build was for a specific tag, look for the 'custom.tagbuild.tag' property in the 'Metadata' tab of a project build.

'Builds From Tags' Notification

You can also configure your project to notify users when someone manually triggers a build of a particular tag version. To do so, do this:

  • Enter the 'Configuration' tab for your project.
  • Select the 'Build Notifications' tab.
  • Add a new notifiation.
  • Select 'Builds From Tags' as the notification type, and add the user details for notification.
  • Save the notification.

Examples

A typical release procedure for a project might be as follows:

  1. Complete customisations for the new project version and check them into your VCS repository.
  2. Create a new tag for your project.
  3. Set up your Bamboo project to preserve the project build data as an artifact.
  4. Navigate to the 'Tags' tab and run a build of the new tag.
  5. Assuming it passes, grab the built artifacts for the project and make them available to the target audience.

Version History

Version Date Notes
1.1.0 27-Mar-2008
  • Initial public release

Screenshots

Labels

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

    Edwin Wong says:

    Hi David, Cool idea there.... Would it be possible to take the idea even furth...

    Hi David,

    Cool idea there....

    Would it be possible to take the idea even further and run builds off specific revisions, even?

    That way, we can actually put in a "re-run" facility for builds.

    Cheers,
    Edwin

    1. Apr 16, 2008

      David Peterson [CustomWare] says:

      Assuming I understand you correctly, it should be possible to allow you to enter...

      Assuming I understand you correctly, it should be possible to allow you to enter a specific revision number and do a build that way. It would have to be free-form basically, and I'm not 100% certain I can even pull the current revision number easily to make it easier to guide users where to start from. I haven't looked into that aspect of it. But not a bad idea.

      Out of curiosity, why do you need to want that level of granularity? I'm not sure what you mean by a "re-run" facility. Could you expand?

      There was also a possibility of adding a 'branch' build option also, but it starts getting a bit crowded pretty quickly.

  2. Apr 16, 2008

    Brad Harvey says:

    Hi David, I like this idea. With CVS support and the ability customise the bui...

    Hi David,

    I like this idea. With CVS support and the ability customise the builder goal for the tag build this could simplify our release management process quite a bit.

    Cheers,
    Brad.

    1. Apr 16, 2008

      David Peterson [CustomWare] says:

      Could you elaborate on what you mean by customising the builder goal? As in, hav...

      Could you elaborate on what you mean by customising the builder goal? As in, having the tag build run something like 'mvn do other stuff' instead of the standard goal? Could be handy I guess, but gets tricky to implement, particularly when you have several options for builders.

      Could you give an example of what you would like to do with it? That would guide any development in that direction more accurately.

      1. Apr 16, 2008

        Brad Harvey says:

        Basically what you said. A normal build might run the "install" goal, a tag bui...

        Basically what you said. A normal build might run the "install" goal, a tag build might do "deploy". Or add a few property overrides (-Dproperty=value).

  3. Apr 17, 2008

    Nicholas Brooks says:

    David,  Any chance Bamboo 2.0 will be supported? Cheers Nicholas 

    David, 

    Any chance Bamboo 2.0 will be supported?

    Cheers
    Nicholas 

    1. Apr 17, 2008

      David Peterson [CustomWare] says:

      Yeah, I hope to get Bamboo 2 and CVS support in before the end of the Codegeist....

      Yeah, I hope to get Bamboo 2 and CVS support in before the end of the Codegeist. We'll see if I can find the time...

  4. May 08, 2008

    Stephen Keogh says:

    Hi David, great plug-in. Exactly what we were looking for here.   I have ...

    Hi David,

    great plug-in. Exactly what we were looking for here.

     
    I have a question about the plug-in locating the tags. At present, we store all our tags in svn/tags. Our trunk code is stored in svn/trunk/products/pcam/productName and our branches in svn/branches/branchName/products/productName. As such I can't pick up the tags for my builds.

     
    My two questions are:

     1. How can I customize the plug-in to look for the tags in our location?

    2. Can we link the tags to the trunk/branch through the revision number, instead of where it's stored?

     Thanks for your help,

     Steve

    1. Jul 02

      David Peterson [CustomWare] says:

      Sorry - missed this earlier. To answer your questions: 1. You'll have to do a s...

      Sorry - missed this earlier. To answer your questions:

      1. You'll have to do a source code mod presently. Basically, it guesses your tag location based on the location of the project within your /trunk. For example, if your base SVN path is 'svn.foo.com/trunk/myProject', the plugin will look for folders in 'svn.foo/com/tags/myProject' (eg 'tags/myProject/1.0', etc). If you want something else, it will have to be either a source modification, or an enhancement which lets you specify the tag root in a config screen (the better solution, but doesn't currently exist).

      2. I'm not actually sure if this would be technically possible. The method I'm using to get tags building at all is a pretty big hack...I don't know if you can get revision numbers anywhere directly currently.

  5. Oct 21

    Andy Stocks says:

    I'd be really interested in being able to get a tagged build initiated via the R...

    I'd be really interested in being able to get a tagged build initiated via the REST api - can this plugin be 'poked' via the existing REST api via parameters or should I be looking at coding something up (assuming that's possible to do via a plugin anyway? - sorry if that's a silly question, only day 2 on plug-in development)

    i.e. something along the lines of 

    http://bamboo.host:8085/updateAndBuild.action?buildKey=PRJ-INT&tag=1.0.2\\

  6. Nov 04

    Jared Bunting says:

    I'm looking for the ability to setup a build plan that, whenever a new tag is cr...

    I'm looking for the ability to setup a build plan that, whenever a new tag is created, will essentially run a build against that new tag.  Doing this, I could not only automatically verify that new tags build properly, but could also run reports, send notifications, and deploy the site.  Would this plugin provide a decent starting place for this?  Any pointers on where to start?

    Thanks