Skip to content

`needs:pipeline` implementation

We should introduce support for defining the upstream/downstream relationship in downstream projects:

gitlab-ce:
  needs:
    pipeline: gitlab-org/gitlab-ce

gitlab-ee:
  needs:
    pipeline: gitlab-org/gitlab-ce

This introduces a job that is exactly the same Ci::Bridge, but instead of having downstream (trigger) it has an upstream dependency.

  1. For each job that has an upstream dependency we want to find the latest pipeline on the given project
  2. If the pipeline is running we wait for this pipeline to finish
  3. This serves as an idea to wait for multiple upstream projects to finish, and allow to easily pass states and dependencies of upstream projects
  4. The needs:pipeline follows all regular rules for handling jobs and when to run them (only/except/when, etc...), we configure the dependency based on that
  5. We do not skip any jobs before this job
Edited by Jason Yavorsky