Add support for needs:parallel:matrix between parallel matrix jobs

Release notes

Problem to solve

At the moment we have the following feature which allows non-parallel matrix jobs to use needs:parallel:matrix and specify a dependency from a parallel job. It can be from a specific parallel matrix job or all the parallel matrix jobs.

Proposal

It would be great if we can configure this setting optionally on each parallel matrix job and allow parallel matrix jobs to have dependencies with each other exclusively (e.g. one parallel matrix job is dependent on another and doesn't have to wait for other parallel matrix jobs).

build_job:
  stage: build
  script: # some task
  parallel:
    matrix:
      - VERSION: [1,2]
        MODE: [A, B]

deploy_job:
  stage: deploy
  script: # some task
  parallel:
    matrix:
      - VERSION: [3,4]
        MODE: [C, D]

deploy_job:3:D
  needs: 
  - job: build_job
    parallel:
      matrix:
        - VERSION: 1
          MODE: A

In this example, once build_job[1_A] is completed, deploy_job[3_D] should start without waiting for other parallel jobs to complete.

Intended users

Feature Usage Metrics

Does this feature require an audit event?

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖