Dependency blocking is an advanced feature of dependent build triggering that can be used to manage the builds of plans that have parent plans. 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.
The three dependency blocking strategies are:
Do not block
When triggered by a source code update, the plan will always be built, regardless of any parent plan build dependencies.
Block build if parent builds are queued or in progress
When triggered by a source code update, the plan will not be built if its parent plans are building or are waiting in the build queue.
Block build if parent plans have unbuilt changes
When triggered by a source code update, the plan will not be built if its parent plans are building, are waiting in the build queue, or have changes.
When Bamboo finds parent plans with source repository changes, those plans will be triggered and your plan will be blocked.
Note that for the Block build if parent plans have unbuilt changes option, only the repositories of parent plans that are specified by triggers (that is, by the Repository polling or Repository triggers the build when changes are committed trigger types) are scanned for unbuilt changes; if there are repository changes (for parent plans), then the parent plans are triggered and the current plan is blocked.
Dependency blocking only works when the plan uses a trigger configuration based on source code updates (i.e. Repository polling or Repository triggers the build when changes are committed). This feature will not work when a plan uses a trigger configuration based on a schedule or triggered via a parent build (when there are multiple parent plan builds in progress).
These dependence blocking strategies are illustrated in the flowchart below: