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 Polling the repository for changes 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 Polling the repository for changes 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).(i.e.
These dependence blocking strategies are illustrated in the flowchart below: