`needs` and `when: manual` used in the same pipeline cause pipeline status to remain Running
Summary
Any CI pipleine configured with needs and when: manual intermixed may enter into a permanent Running state on failure or completion. All jobs will be finished, failed, or not started, but the Pipeline status will remain Running.
The issue always occurs when also hitting #31526 (closed) intermixed with when: manual.
Note in the below screenshots that no jobs are actually running
Steps to reproduce
Create a pipeline like the below, with several uses of needs and when: manual. Specifically make a needs job need a when: manual job Build it to fail on purpose. It will never enter Failed state.
Create a pipeline like the below. When the job finishes cleanly, but without running the manual steps, it will never enter the passed state.
test:airflow:
script:
- do the thing
build:airflow:
script:
- do the thing
needs: ['test:airflow']
pillar:staging:airflow:
script:
- do the thing
needs: ['build:airflow']
deploy:staging:airflow:
script:
- do the thing
needs: ['pillar:staging:airflow']
pillar:production:airflow:
script:
- do the thing
when: manual
deploy:production:airflow:
script:
- do the thing
needs: ['pillar:production:airflow']
What is the current bug behavior?
Pipeline never enters failed or passed state
What is the expected correct behavior?
Pipeline enters failed or passed state
Relevant logs and/or screenshots
Completed pipeline that never passes:
Failed Pipeline that never fails:
Output of checks
This bug happens on GitLab.com



