How do sections of job groups work with respect to other project jobs

Replace this template with your information

*I’m considering using job groups for a stage in a gitlab project that runs across multiple projects. I need to understand if the Gitlab will execute the group pieces directly one after the other even though other projects may get into the stage with the job groups. Or is each individual job in the job group treated as its own individual entity and competing in-line with other projects using the same gitlab-runner?

  • What are you seeing, and how does that differ from what you expect to see? Just started testing using job groups for a stage in a pipeline

  • Consider including screenshots, error messages, and/or other helpful visuals

  • What version are you on? Are you using self-managed or GitLab.com? self-managed

    • GitLab (Hint: /help):
    • Runner (Hint: /admin/runners):
  • Add the CI configuration from .gitlab-ci.yml and other configuration if relevant (e.g. docker-compose.yml)

  • What troubleshooting steps have you already taken? Can you link to any docs or other resources so we know where you have been? Jobs | GitLab

Thanks for taking the time to be thorough in your request, it really helps! :blush:

Trying to put an example of .gitlab-ci.yml code here:

Multiple projects have pipelines very similar and use the same runners in similar stages. Each project has its own .gitlab-ci.yml. So - is there a risk that project A will execute ftest 1/2 on the gitlab-runner system and then project B executes its ftest 1/2 before the project A executes ftest 2/2?

Or can I be assured once the group gets entered in project A that all sub-jobs in project A’s group get executed before any job from project B is executed?

project A: .gitlab-ci.yml:

ftest 1/2:
  stage:  test
  variables:
     <a variety of config vars for the stage>
  script:
      <script steps>
  tags:
    - cicd-test
  allow_failure: true
ftest 2/2:
  stage:  test
  variables:
     <a variety of config vars for the stage>
  script:
      <script steps>
  tags:
    - cicd-test
  allow_failure: true

project B: .gitlab-ci.yml: (exact same for this stage)

ftest 1/2:
  stage:  test
  variables:
     <a variety of config vars for the stage>
  script:
      <script steps>
  tags:
    - cicd-test
  allow_failure: true
ftest 2/2:
  stage:  test
  variables:
     <a variety of config vars for the stage>
  script:
      <script steps>
  tags:
    - cicd-test
  allow_failure: true