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"