Dependency blocking is a 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.
Dependency blocking only works when the Plan uses a build strategy based on source code updates (i.e. the Polling the Repository for changes or Repository triggers the build when changes are committed build strategy options). This feature will not work when a Plan uses a build strategy based on a schedule or triggered via a parent build (when there are multiple parent Plan builds in progress).
The three dependency blocking strategies are explained below:
- 'Do not block' — If a Plan build with this dependency blocking strategy is triggered by a source code update, the Plan build will run whenever it is triggered by a source code update, regardless of whether or not it has parent Plan build dependencies.
- 'Block build if parent builds are queued or in progress' — If a Plan build with this dependency blocking strategy is triggered by a source code update, Bamboo will check whether its parent Plans' Jobs are building or are waiting in the build queue.
- If so, the Plan's build will be blocked.
- If not, the Plan's build will run.
- 'Block build if parent plans have unbuilt changes' — If a Plan build with this dependency blocking strategy is triggered by a code update, Bamboo will check whether its parent Plans are building, queued to build or have changes.
- If so, the Plan build will be blocked.
- If not, Bamboo will check if any of the parent Plan's builds have changes. If there are parent Plan builds with changes, those Plans will be triggered and your Plan's build will be blocked. If there are no parent Plan builds with changes, your Plan's build will run.
These dependence blocking strategies are illustrated in the flowchart below:
Attachments:







