Bamboo
  1. Bamboo
  2. BAM-5450

Better support for maven-release-plugin

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.5.1
    • Fix Version/s: None
    • Component/s: Maven, Stages, Tasks, User Interface
    • Labels:
    • Environment:

      Bamboo, Maven 2, maven-release-plugin

    • Last commented by user?:
      true
    • Comments:
      2

      Description

      Hi all,

      we are using the maven-release-plugin for releasing our artifacts. The release plugin is quite nice since it handles the complete release process:

      1. updating poms to release version
      2. tagging source in SVN
      3. updating poms to next development version
      4. checking out sources from release tag in SVN
      5. clean install deploy sources from release tag to maven repository

      However, I am not quite sure how to best use it in combination with Bamboo. Ideally I'd like Bamboo to create the releases, but it seems to me that a release is not a first-class citizen in Bamboo (it is all just builds).

      So I have created a build plan for my maven project foo, it is called foo-build. In the build plan I specify the goals clean deploy. This is fine and will deploy SNAPSHOT versions of foo to our maven snapshot repo.

      For creating a release of foo I have created another build plan named foo-release. It is basically a clone of foo-build but with a different set of goals:

      release:clean release:prepare release:perform --batch-mode -DreleaseVersion=1.1 -DdevelopmentVersion=1.2-SNAPSHOT
      

      This works as expected, but is not optimal, because:

      • for each release I need to change the foo-release build plan (update -DreleaseVersion and -DdevelopmentVersion
      • they are two different build plans, but I would rather consider them two variations of the same build (snapshot build and release build)
      • it is error prone: if I accidentially hit the build button before changing the release version I might end up overwriting an existing release

      In my ideal world a release would be a first-class citizen in Bamboo:

      • In Builder Configuration I would define the goals for the standard (snapshot) build
      • optionally I could define a different set of goals for a release build within the same build plan
      • for sure, releases would correlate with the versions defined in JIRA
      • given the appropriate rights, I would see a "Create Release" button next to the build plan
        1. clicking on it takes me to another screen where I have input fields for entering the release version (could be a dropdown box with the versions defined in JIRA) and next development version
        2. for sure, Bamboo would make sure that a release of that artifact with the given version does not yet exist
        3. if input is okay, Bamboo starts the release build and creates a "release build results" page

      As I go on writing this, I firmly believe that something like this MUST already exist! Does it?!?

      Releases seem to be first class citizens in JIRA already, so leveraging this and adding the connection to Bamboo would be really a great benefit IMHO.

      Kind regards,
      Torben

        Activity

        Hide
        Torben Knerr added a comment -

        I have to correct myself w.r.t. to the JIRA project versions. Ideally, I would not want to use a version defined in JIRA project as the release version of a build artifact. Instead I would rather define the release version of the artifact myself, but I would have the ability to map that release version to a project version defined in JIRA!

        IMHO this would perfectly fill the gap between project versions in JIRA and individual maven artifact versions, especially when the JIRA project you are tracking contains multiple artifacts and not all of them are released in one bunch all with the same version number.

        Show
        Torben Knerr added a comment - I have to correct myself w.r.t. to the JIRA project versions. Ideally, I would not want to use a version defined in JIRA project as the release version of a build artifact. Instead I would rather define the release version of the artifact myself, but I would have the ability to map that release version to a project version defined in JIRA! IMHO this would perfectly fill the gap between project versions in JIRA and individual maven artifact versions, especially when the JIRA project you are tracking contains multiple artifacts and not all of them are released in one bunch all with the same version number.
        Hide
        Mark Chaimungkalanont [Atlassian] added a comment -

        Torben,

        Thanks a ton for the detailed feedback. I really appreciate it.

        Making releases more prominent is definitely something we're toying with internally and are looking at possibly making it happen for 3.0. I might get more details from you when we get closer to specifically planning for that.

        With regards to the JIRA versions side of things, there is a JIRA versions plugin from Sysbliss that may cover what you're after. Check it out at:

        https://plugins.atlassian.com/plugin/details/6241

        Cheers,

        Mark C

        Show
        Mark Chaimungkalanont [Atlassian] added a comment - Torben, Thanks a ton for the detailed feedback. I really appreciate it. Making releases more prominent is definitely something we're toying with internally and are looking at possibly making it happen for 3.0. I might get more details from you when we get closer to specifically planning for that. With regards to the JIRA versions side of things, there is a JIRA versions plugin from Sysbliss that may cover what you're after. Check it out at: https://plugins.atlassian.com/plugin/details/6241 Cheers, Mark C

          People

          • Votes:
            11 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated:
              Last commented:
              4 years, 5 weeks, 6 days ago