Stage-level play all button in a child pipeline doesn't move all manual jobs into pending state
Summary
This seems to be intermittent. In a child pipeline where all jobs in a stage are manual, clicking the play button on the stage level (ie play all) doesn't move all jobs into pending state. Some (random number) of jobs sometimes stay in manual state.
Steps to reproduce
- Add a .gitlab-ci.yml that has a trigger job to create a child pipeline. Example:
stages:
- validate
- universal
- compile-and-package
variables:
RUN_PIPELINE: bakery-workflow
bakery-workflow:
stage: universal
trigger:
include: <subfolder>/.gitlab-ci.yml
strategy: depend
forward:
pipeline_variables: true
rules:
- if: $RUN_PIPELINE == "bakery-workflow" && $CI_COMMIT_BRANCH == "main"
- In the child pipeline, have a stage where all jobs are manual.
/.gitlab-ci.yml:
workflow:
name: BAKERY-WORKFLOW
default:
tags:
- chocolate-mixer
stages:
- freeze-recipe
- bakery-morning-shift
- morning-quality-check
- bakery-afternoon-shift
.bakery-process:
before_script:
- echo "setting PATH"
script:
- echo "deploy-platform -g"
.bakery-morning-shift:
extends: .bakery-process
stage: bakery-morning-shift
morning-bake:
extends: .bakery-morning-shift
environment:
name: bakery/kitchen/downtown/morning
freeze-recipe:
stage: freeze-recipe
artifacts:
reports:
dotenv: myenv.env
paths:
- myenv.env
script:
- echo "TEST_VAR=TEST_VAL" >> myenv.env
rules:
- if: $CI_COMMIT_BRANCH == "main"
environment:
name: bakery/all
include:
- 'bakery/process/.gitlab-ci-location-jobs.yml'
platform/deploy/.gitlab-ci-tenant-jobs.yml:
.bakery-afternoon-shift:
extends: .bakery-process
needs:
- morning-bake
- freeze-recipe
rules:
- when: manual
stage: bakery-afternoon-shift
variables:
FF_TIMESTAMPS: true
croissant-station:
extends: .bakery-afternoon-shift
environment:
name: bakery/croissant-station
# Add 10 more jobs that extends the same hidden job with a different environment.name
- Run a job, once downstream pipeline is created click the child pipeline id to open it.
- On the child pipeline page, on the top of the
bakery-afternoon-shiftstage, click the play button to play all manual jobs. - Observe that some jobs started (pending status), but some are still in manual state.
What is the current bug behavior?
Stage-level play all button doesn't start all manual jobs. Manual jobs don't move to Pending state, stay in manual state (showing the gear icon)
What is the expected correct behavior?
All manual jobs in that stage should go into Pending state first then start running. Like this:
Output of checks
This bug happens on GitLab.com
Possible fixes
Patch release information for backports
If the bug fix needs to be backported in a patch release to a version
under the maintenance policy, please follow the steps on the
patch release runbook for GitLab engineers.
Refer to the internal "Release Information" dashboard
for information about the next patch release, including the targeted versions, expected release date, and current status.
High-severity bug remediation
To remediate high-severity issues requiring an internal release for single-tenant SaaS instances,
refer to the internal release process for engineers.