Bamboo Stages and the Maven Lifecycle
Let's say I have a pretty standard maven based java project that uses almost all of the maven lifecycle. Compile on compile, JUnit test cases on test, integration testing using an automatically started and stopped jetty on integration-test / verify, deploying to our internal maven repo on deploy. Basic stuff.
This also runs as a build plan on our Bamboo server. At the moment, there is only one stage with one job with one task, that executes mvn clean deploy. This ensures that the SNAPSHOT on our repo is always the last version from source control that compiles without test failures.
Now, my feeling is that Bamboo could do more... What are all the stages and tasks and stuff for, if everything is handled in one lonely task? So I thought, maybe the could be a "test" stage, an "integration-test" stage and a "deployment" stage that execute mvn test, mvn verify and mvn deploy... But: Every Stage has it's own checkout directory and as such, the last stage has to do the whole maven lifecycle up to deploy again, including test and verify...
What would be a good way to map maven to bamboo? I didn't find any example configurations like this. Has anyone done this before in a coherent way? Or should I move testing stuff from the pom.xml to directly configured Bamboo jobs?
From what I've used Bamboo for the stages are separate entities in terms of the build, with each having a different folder on the server. However you can share artifacts of the build between different stages.
This way you could possibly use the deploy stage to get the jar from the package stage in Bamboo.