For the complete documentation index, see llms.txt. This page is also available as Markdown.

Phase Dependencies

Learn how to configure dependencies between phases to control execution order

Phase dependencies control the execution order of phases in a release process. Understanding and properly configuring dependencies is essential for ensuring releases execute in the correct sequence.

What are Phase Dependencies?

Phase dependencies define which phases must complete before another phase can start. They ensure:

  • Correct execution order

  • Prerequisites are met

  • Data and artifacts are available

  • Validation occurs before deployment

Dependency Types

Sequential Dependencies

One phase must complete before another starts:

process:
  phases:
    - phase:
        id: build_phase
        name: Build Phase
        depends-on: []
    - phase:
        id: test_phase
        name: Test Phase
        depends-on:
          - build_phase
    - phase:
        id: deploy_phase
        name: Deploy Phase
        depends-on:
          - test_phase

Execution Flow:

Multiple dependencies

One phase can depend on multiple phases. In the following example, PhasEnd1 depends on multiple phases:

Dependency Configuration

Basic Dependency

Simple dependency declaration:

Common Dependency Patterns

Linear Chain

Sequential phases in a chain:

Best Practices

Minimize Dependencies

Only add necessary dependencies:

  • Recommended: Essential prerequisites

  • Avoid: Unnecessary blocking

Clear Dependency Logic

Make dependencies explicit and understandable:

  • Use descriptive phase names

  • Document dependency reasons

  • Avoid implicit dependencies

Optimize for Parallelism

Structure dependencies to enable parallel execution:

  • Identify independent phases

  • Minimize sequential bottlenecks

  • Group related dependencies

Validate Early

Check dependencies during process creation:

  • Validate dependency chains

  • Detect cycles

  • Identify unreachable phases

Troubleshooting

Phase Not Starting

Check:

  • All dependencies completed successfully

  • No blocking conditions

  • Phase is not skipped

  • No errors in dependencies

Unexpected Execution Order

Verify:

  • Dependency configuration

  • Conditional logic

  • Parallel execution settings

  • Phase status

Last updated

Was this helpful?