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:
- updating poms to release version
- tagging source in SVN
- updating poms to next development version
- checking out sources from release tag in SVN
- 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
- 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
- for sure, Bamboo would make sure that a release of that artifact with the given version does not yet exist
- 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