|
8 | 8 |
|
9 | 9 | Originally developed as a technical assessment for a job interview, this project received positive feedback, which led to its open-sourcing. The tool is inspired by industry-standard build systems like **[Cake Build](https://cakebuild.net/)**, **[MSBuild](https://github.com/dotnet/msbuild)**, and **[BuildGraph](https://dev.epicgames.com/documentation/en-us/unreal-engine/buildgraph-for-unreal-engine)**. It leverages a [Directed Acyclic Graph (DAG)](https://en.wikipedia.org/wiki/Directed_acyclic_graph) to define dependencies and enforce a logical execution order of tasks, facilitating complex build pipelines. |
10 | 10 |
|
| 11 | +## Demonstration |
| 12 | + |
| 13 | +The **build-automation-tool** can operate in two execution modes: **parallel** and **sequential**. Both modes utilize the task dependency graph but differ in how tasks with shared dependencies are executed. |
| 14 | + |
| 15 | +- **Parallel Execution:** Allows tasks that have shared dependencies but are independent of each other to run concurrently. This mode optimizes runtime by leveraging available resources, reducing the overall build time. |
| 16 | + |
| 17 | +- **Sequential Execution:** Ensures all tasks are executed one after another, maintaining a strict chronological order based on task dependencies. This mode is ideal for processes where tasks are interdependent or when parallel execution is unnecessary. |
| 18 | + |
| 19 | +Below are animated demonstrations that show how tasks progress in each mode. |
| 20 | + |
| 21 | +<div align="center"> |
| 22 | + |
| 23 | +### Parallel Execution |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +In parallel execution mode, tasks are grouped and executed concurrently whenever possible. Tasks with dependencies that do not conflict are run simultaneously, reducing build times. |
| 28 | + |
| 29 | +### Sequential Execution |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +Sequential execution mode processes each task in strict dependency order, from start to finish. This ensures a reliable and controlled build process where tasks execute one at a time. |
| 34 | + |
| 35 | +</div> |
| 36 | + |
| 37 | +With **build-automation-tool**, developers can efficiently manage complex build workflows, streamline repetitive build tasks, and improve productivity by automating dependency-based execution. Whether you’re building small applications or handling large projects with intricate dependencies, this tool provides a flexible and powerful solution for automating your build pipeline. |
| 38 | + |
11 | 39 | ## Table of Contents |
12 | 40 |
|
13 | 41 | - [build-automation-tool](#build-automation-tool) |
| 42 | + - [Demonstration](#demonstration) |
| 43 | + - [Parallel Execution](#parallel-execution) |
| 44 | + - [Sequential Execution](#sequential-execution) |
| 45 | + - [Table of Contents](#table-of-contents) |
14 | 46 | - [Features](#features) |
15 | 47 | - [Dependencies](#dependencies) |
16 | 48 | - [Usage](#usage) |
17 | 49 | - [Instructions](#instructions) |
18 | 50 | - [Tool Structure](#tool-structure) |
19 | | - - [Demonstration](#demonstration) |
20 | | - - [Parallel Execution](#parallel-execution) |
21 | | - - [Sequential Execution](#sequential-execution) |
22 | 51 |
|
23 | 52 | ## Features |
24 | 53 |
|
@@ -53,31 +82,3 @@ Detailed usage instructions are available in [INSTRUCTIONS.md](INSTRUCTIONS.md). |
53 | 82 | ### Tool Structure |
54 | 83 |
|
55 | 84 | The *Tool* folder organizes the core source files for the **Build Automation Tool**. This folder includes the scripts and configurations necessary to execute build tasks as defined in the technical requirements. Each file is crafted to streamline the execution process, following the task dependencies outlined in the DAG. |
56 | | - |
57 | | -## Demonstration |
58 | | - |
59 | | -The **build-automation-tool** can operate in two execution modes: **parallel** and **sequential**. Both modes utilize the task dependency graph but differ in how tasks with shared dependencies are executed. |
60 | | - |
61 | | -- **Parallel Execution:** Allows tasks that have shared dependencies but are independent of each other to run concurrently. This mode optimizes runtime by leveraging available resources, reducing the overall build time. |
62 | | - |
63 | | -- **Sequential Execution:** Ensures all tasks are executed one after another, maintaining a strict chronological order based on task dependencies. This mode is ideal for processes where tasks are interdependent or when parallel execution is unnecessary. |
64 | | - |
65 | | -Below are animated demonstrations that show how tasks progress in each mode. |
66 | | - |
67 | | -<div align="center"> |
68 | | - |
69 | | -### Parallel Execution |
70 | | - |
71 | | - |
72 | | - |
73 | | -In parallel execution mode, tasks are grouped and executed concurrently whenever possible. Tasks with dependencies that do not conflict are run simultaneously, reducing build times. |
74 | | - |
75 | | -### Sequential Execution |
76 | | - |
77 | | - |
78 | | - |
79 | | -Sequential execution mode processes each task in strict dependency order, from start to finish. This ensures a reliable and controlled build process where tasks execute one at a time. |
80 | | - |
81 | | -</div> |
82 | | - |
83 | | -With **build-automation-tool**, developers can efficiently manage complex build workflows, streamline repetitive build tasks, and improve productivity by automating dependency-based execution. Whether you’re building small applications or handling large projects with intricate dependencies, this tool provides a flexible and powerful solution for automating your build pipeline. |
|
0 commit comments