How to deal with my projects pom hierarchy when building with multiple stages in my plan

James Fraser January 17, 2012

Here is my project structure:

/
pom.xml
/dir1
/pom.xml
/dir1_1
/pom.xml
/dir2
/pom.xml
/dir2_1
/pom.xml
/dir2_2
/pom.xml

...

It would be nice to use a modular plan in Bamboo. The parent poms are both aggregate and inheritable.

I would like to have the following stages in a plan:

  • Checkout
  • Compile
  • Test
  • Deploy

Where I would have multiple plans, each compiling, testing and deploying individual projects from the overall project; i.e. dir2_2 under dir2 (dir being a substitute for a project name). In order to build dir2_2, I need to have the upper and core pom projects available.

Is this possible?

1 answer

1 accepted

0 votes
Answer accepted
ReneR
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 24, 2012

Overall structure:

* Plan - Build All

* * Stage 1 - Build Proj 1

* * Stage 2 - Build Proj 2

Stage structure:

Stage N

Job 1

Task a = Source Checkout task top-level upper parent POM to sub-dir .\

Task b = Source checkout task core POM to sub-dir .\dirN

Task c = Source checkout task project to sub-dir .\dirN\dirN_m

Task d = Call 'mvn deploy' inside .\dir\.dirN_m

That's it.

"mvn deploy" will of course depend on tests passing, which of course will depend on a compile. Though it will be much easier to make dirN_m a self-contained project that doesn't require the ..\pom.xml and ..\..\pom.xml. You can release those POMs as artifacts to your Maven repo and list them as dependencies in dirN_m's pom.

N.B. Multiple checkout tasks is only possible in Bamboo 3.3. Another way to do that is to setup a "shell" project in your source repo that has the structure needed. You can accomplish that with svn:externals, git/hg sub-repos, P4 client specs, ClearCase viewspecs, etc...

Shane Shane July 1, 2012

Rene,

If I were to click the Wallboard view would I just see a single pass/fail for the entire Plan? Our preference is to be able to break out the test pass/fail per artifact.

Does an easy way exist for this?

Thank you,

Shane

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events