Complex pipeline workflows with dependencies

Description

Allow specifying downstream dependencies in gitlab with finer granularity than simple pipeline stages.

Overview

Imagine this scenario for the project FOO. The FOO project has a single binary that is built, but the binary may be deployed to different systems depending on which set of tests pass. An ideal pipeline may look like the following:


FOO
___
     BUILD STAGE     |        ACCEPTANCE          | DEPLOY 

                       acceptance test for BAR 1  \   
                                                    -> DEPLOY to BAR  
                       acceptance test for BAR 2  /

build repo - > 
                       acceptance test for MOR 1  \
                                                    -> DEPLOY to MOR
                       acceptance test for MOR 2  /

In this FOO project we build one binary. The binary once tested for the appropriate systems is then immediately deployed. If BAR tests pass but MOR tests fail, then we can deploy to BAR.

The ability to explicitly set upstream dependencies would solve this. the "DEPLOY to BAR" job could mark that he depends on "acceptance test for BAR 1" and "acceptance test for BAR 2"

Assignee Loading
Time tracking Loading