Activity Dependencies
Activity dependencies control the execution order of activities within a phase. Properly configuring dependencies ensures activities execute in the correct sequence.
What are Activity Dependencies?
Activity dependencies define which activities must complete before another activity can start. They ensure:
- Correct execution order
- Prerequisites are met
- Data and artifacts are available
- Validation occurs in proper sequence
Dependency Types
Sequential Dependencies
One activity must complete before another starts:
phase:
activities:
- activity: AutoPipe
id: AutoPipe
name: AutoPipe90
depends-on: []
- activity: AutoPipe
id: AutoPipe12
name: AutoPipe12
depends-on:
- AutoPipe
Execution Flow:
Build → Test → Deploy
Parallel Execution
Activities with no dependencies can run in parallel:
phase:
activities:
- activity: AutoPipe
id: AutoPipe
name: AutoPipe90
depends-on: []
- activity: AutoPipe
id: ManualTestUIUI
name: ManualTestUIUI
description: doc
depends-on: []
Execution Flow:
Build Service A ─┐
Build Service B ─┼→ Integration Test
Build Service C ─┘
Conditional Dependencies
Dependencies that depend on conditions:
phase:
activities:
- activity: AutoPipe
id: AutoPipe12
name: AutoPipe12
depends-on:
- AutoPipe
- activity: AutoPipe
id: TestActivity00
name: TestActivity00
depends-on:
- AutoPipe12
if: <+90>
Dependency Configuration
Basic Dependency
Simple dependency declaration:
activity:
name: "Activity B"
depends-on:
- ActivityA
Multiple Dependencies
Activity depends on multiple activities:
An activity can list multiple prerequisite activity IDs under depends-on.
Common Dependency Patterns
Linear Chain
Sequential activities in a chain:
Activity 1 → Activity 2 → Activity 3 → Activity 4
Best Practices
Minimize Dependencies
Only add necessary dependencies:
- Recommended: Essential prerequisites
- Avoid: Unnecessary blocking
Clear Dependency Logic
Make dependencies explicit and understandable:
- Use descriptive activity names
- Document dependency reasons
- Avoid implicit dependencies
Optimize for Parallelism
Structure dependencies to enable parallel execution:
- Identify independent activities
- Minimize sequential bottlenecks
- Group related dependencies
Validate Early
Check dependencies during process creation:
- Validate dependency chains
- Detect cycles
- Identify unreachable activities
Troubleshooting
Activity Not Starting
Check:
- All dependencies completed successfully
- No blocking conditions
- Activity is not skipped
- No errors in dependencies
Unexpected Execution Order
Verify:
- Dependency configuration
- Conditional logic
- Parallel execution settings
- Activity status