Accelerating pipelines with directed acyclic graphs and parent-child architecture
GitLab supports the usage of the directed acyclic graph (DAG) pattern for building CI pipelines. Under normal usage with GitLab, each stage represents a series of jobs that need to be completed. Each stage is comprised of multiple jobs that are executed in parallel. Once a stage completes, then the next stage begins, until the pipeline completes. This is the typical processing loop that GitLab utilizes to complete a CI pipeline.
However, it is possible to create an internal loop of CI jobs that are directed to execute in a specific order that does not loop. This pattern is called a DAG or directed acyclic graph. Directed refers to the ordering of operations, acyclic refers to the fact it only happens once, and graph indicates the ordering of steps.
When leveraged properly, the DAG pattern can dramatically decrease the time it takes a pipeline to complete. This occurs because you are creating processing...