Skip to content

Compliance pipelines load parent config in downstream pipelines

Summary

When a trigger: keyword is used in a regular project that has compliance pipeline feature in use, the downstream config is not triggered.

The bridge job starts a new compliance pipeline that ends up re-running the parent pipeline, and this recurses until the maximum depth error is hit (after 3 attempts)

Steps to reproduce

Setup a compliance pipeline based on https://docs.gitlab.com/ee/user/project/settings/index.html#compliance-pipeline-configuration

In the project, add a simple job that uses trigger: to load a local (or cross-project/remote) file:

# .gitlab-ci.yml

stages:
  - compliance
  - build
  - test

build:
  stage: build
  script: echo build

test:
  stage: test
  trigger:
    include:
      - local: child-ci.yml
    strategy: depend
# child-ci.yml

stages:
  - build
  - test

check:
  stage: build
  script: echo check

misc:
  stage: test
  script: echo misc

Upon execution, notice that the child-ci's jobs check and misc are never run.

Example Project

See customer ticket for an example job: https://gitlab.zendesk.com/agent/tickets/229643 (internal link)

What is the current bug behavior?

  • Downstream pipeline is never executed
  • Parent pipeline is re-executed recursively
  • Compliance pipeline is executed again for downstream pipelines

What is the expected correct behavior?

  • Downstream pipeline's jobs are executed
  • Parent pipeline's jobs are not re-executed
  • Compliance pipeline jobs are not re-executed unless determined necessary (such as in cross-project triggers)

Relevant logs and/or screenshots

See customer ticket for an example job: https://gitlab.zendesk.com/agent/tickets/229643 (internal link) and screenshots

Output of checks

This bug happens on GitLab.com

Possible fixes

TBD

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 🤖