Skip to content

Backend: Wrong parent pipeline status when child pipeline contains optional manual jobs

Summary

When a child pipeline contains only optional (allow_failure: true) manual jobs, which were not run yet, the status of the parent pipeline is set to failed even though no jobs have failed.

Steps to reproduce

  1. Create parent pipeline .gitlab-ci.yml:
stages:
  - trigger_pipeline

trigger_pipeline:
  stage: trigger_pipeline
  trigger:
    include:
      - local: .gitlab-ci-include.yml
    strategy: depend
  1. Create child pipeline .gitlab-ci-include.yml:
stages:
  - test

test:
  stage: test
  allow_failure: true
  script:
    - echo 1
  rules:
    - when: manual

Example Project

https://gitlab.com/sandra17/gitlab-ci-wrong-pipeline-status/

What is the current bug behavior?

The status of the parent pipeline is set to failed.

What is the expected correct behavior?

The status of the pipeline should be set to passed if no jobs have failed.

Acceptance criteria

  • Test with trigger:strategy:depend and without.
Edited by James Heimbuck