[Bamboo Knowledge Base]
You may want to trigger a plan build when another plan's build has successfully completed. This ensures that changes to any job's source code associated with one plan does not break the build of another dependent plan (known in this context as a 'child' plan).
For example, there could be two plans in Bamboo:
In this scenario, the Acme – Plugin plan is a child of Acme – Core. Any changes to source code associated with the Acme – Core plan should trigger a build of Acme – Plugin.
On this page:
To trigger a child plan to build when this plan builds successfully:
Automatic Dependency Management is a feature for users who use Maven 3 and wish for their parent and child dependencies to be set up according to the dependencies in the Maven pom.xml. Every time the plan is run, the Bamboo Automatic Dependencies are updated to reflect any additions or removals of Maven dependencies.
To setup automatic dependency management:
Click Add Task and add the Maven Dependency Processor task to the job. For best results, ensure that the task runs last by dragging it to the bottom of the task list. For more information on configuring tasks, see Configuring tasks.
Setting | Notes |
---|---|
Override Project File | Optional. The location relative to the working directory or sub-working directory where the project file (pom.xml) is located. |
Working Sub Directory | Optional. The sub directory from which the Task should look for the project file (pom.xml) |
Alternate location of settings.xml | Optional. Specify an alternate settings.xml to be used if the Task needs to resolve dependencies from specific Maven repositories. |
Path to Maven local repository | Optional. Specify a full path to a local Maven repository for the Task to use to resolve dependencies. |
Dependency blocking is an advanced feature of dependent build triggering that can be used to manage plan builds with parent build dependencies. This ensures that a "tree" of dependent builds always runs in tree hierarchy order, even if child plan builds are triggered independently of their parents. For more information, see Dependency blocking strategies. Please note, dependency blocking only works when the plan build is triggered because of source repository code updates.
Build dependencies work together with the trigger configuration of plans to trigger builds of these plans. For example, you can set up Plan A to poll its repository for changes as well as to be dependent on a parent plan (Plan B). In this case, builds of Plan A will be triggered when code changes are detected in its repository and also when builds of Plan B complete successfully.
If you want your builds to only be triggered by successful parent builds from your build dependencies, don't configure triggering for your child plans at all. See Running a plan build manually.