This lab focused on dependency-aware pipeline runner using a cloud-based Ubuntu 24.04 environment and a realistic hands-on workflow. I built the required project files, executed the setup and validation steps, captured outputs, and documented the final operational results.
- Model job dependencies using directed acyclic graphs (DAGs)
- Implement topological sorting to resolve execution order
- Handle job failures and dependency propagation
- Build a practical pipeline execution system
- Basic Python programming knowledge
- Understanding of graphs and data structures
- Familiarity with Linux command line
- Basic understanding of CI/CD concepts
- Host:
ip-172-31-10-214 - Platform: Cloud-based Ubuntu 24.04 LTS lab VM
- Shell: Bash
- Runtime: Python 3.12 virtual environment
- Library: PyYAML
- Execution Model: DAG-style pipeline orchestration
- Model Job Dependencies
- Implement Core Functionality
- Test with Failure Scenarios
lab14-dependency-aware-pipeline-runner/
├── commands.sh
├── interview_qna.md
├── output.txt
├── pipeline_complex.yaml
├── pipeline_config.yaml
├── pipeline_config_fail.yaml
├── pipeline_runner.py
├── test_pipeline.py
└── troubleshooting.md
- Pipeline runner executed valid DAG configurations successfully
- Failure configuration demonstrated correct stop-on-failure behavior
- Topological sorting and cycle validation were verified
- Complex pipeline execution confirmed dependency ordering
- Model job dependencies using directed acyclic graphs (DAGs)
- Implement topological sorting to resolve execution order
- Handle job failures and dependency propagation
- Build a practical pipeline execution system
- How to document and validate the workflow in a portfolio-friendly structure
Pipeline systems rarely execute jobs in a simple flat list. Dependency-aware orchestration is required to respect execution order, detect cycles, and stop downstream work when upstream jobs fail.
- Build and deployment pipelines
- Data-processing DAG execution
- Workflow orchestration and scheduling
- Dependency-aware automation runners
- Pipeline runner executed valid DAG configurations successfully
- Failure configuration demonstrated correct stop-on-failure behavior
- Topological sorting and cycle validation were verified
- Complex pipeline execution confirmed dependency ordering
You have built a dependency-aware pipeline runner that solves a core DevOps challenge: executing jobs in the correct order while handling failures gracefully. This system uses graph algorithms such as topological sorting and cycle detection to ensure reliable pipeline execution.
- Modeled complex job dependencies as a DAG
- Implemented topological sorting for execution order
- Built failure handling with downstream propagation
- Created a reusable pipeline orchestration tool
This foundation is used in production CI/CD systems like Jenkins, GitLab CI, and GitHub Actions. You can extend this with parallel execution, retries, and conditional dependencies. In this reconstructed run, the runner handled normal pipelines, failure scenarios, and a more complex DAG correctly, which matches the goals and expected outcomes described in your uploaded Lab 14.