Non-blocking manual jobs that would report failure, not warning
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=28036) </details> <!--IssueSummary end--> ### Problem to solve This is what I would like to achieve: 1. Pipeline with stages `build`, `test`, `stage`, `deploy` 2. `build` and `test` are executed automatically on push 3. `stage` and `deploy` are manual jobs 4. When `build` and `test` stages pass, the whole pipeline is reported as `passed` 5. When a manual job is triggered _and it fails_, the pipeline will be reported as `failed` In order to achieve `4.`, the manual jobs must have `allow_failure: true` (set by default). But that breaks `5.`, because that marks the job as `warning`, not `failed`. In order to achieve `5.`, the manual jobs must have `allow_failure: false`. But that breaks `4.`, because the pipeline status after the automatic jobs finish will be `blocked`, not `passed`. Currently there does not seem to be a way to have a pipeline such that: - it has an optional manual job (e.g. for deploy so that when the non-manual jobs finish, the pipeline's status is `passed`) - when the manual job fails, it is reported as `failed`, not just `warning` This issue is somewhat related to !60334
issue