Skip to content

Draft: Allow jobs need to refer to a job in the same stage

Furkan Ayhan requested to merge 297083-allow-needs-in-the-same-stage into master

What does this MR do?

Related to #297083 (closed) (spike issue). Original issue: #30632 (closed)

This MR is a POC of allowing jobs to need jobs in the same stage.

For a ready-MR, this requires;

  • Handling circular dependencies.
  • Handling .before_stage, .for_stage and .after_stage as this will break that, ex.: retry of build, dependencies, analytics
  • UX / some designs.
  • A feature flag
  • documentation changes

Screenshots (strongly suggested)

Example 1

build:
  stage: test
  script: exit 0

test:
  stage: test
  script: exit 0
  needs: [build]

deploy:
  stage: test
  script: exit 0
  needs: [test]

Screen_Shot_2021-01-18_at_14.09.01

Screen_Shot_2021-01-18_at_14.09.06

Screen_Shot_2021-02-18_at_12.06.46

Example 2

build1:
  stage: test
  script: exit 0

build2:
  stage: test
  script: exit 0

test1:
  stage: test
  script: exit 0
  needs: [build1]

test2:
  stage: test
  script: exit 0
  needs: [build2]

deploy1:
  stage: test
  script: exit 0
  needs: [test1]

deploy2:
  stage: test
  script: exit 0
  needs: [test2]

Screen_Shot_2021-01-18_at_14.10.27

Screen_Shot_2021-01-18_at_14.10.12

Screen_Shot_2021-02-18_at_12.06.32

needs-with-new-pipeline-show

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Furkan Ayhan

Merge request reports