Make manual actions obey the laws of physics
Description
OK, maybe it's not the laws of physics at play here, but manual actions are confusing to people because they don't obey the pipeline flows used for other jobs. e.g. Manual actions should be blocked until the previous stage succeeds and subsequent stages should be blocked until manual actions have succeeded.
Proposal
- Manual actions should be blocking. There should be no other option. If you want a cleanup job to run regardless of a manual job running or not, then use
when: always
. - Stop jobs should be placed in their own stage, at the end of the pipeline. That's what I'm converging on for my examples (https://gitlab.com/markpundsack/openshift-example/blob/dry/.gitlab-ci.yml#L13). Nothing else makes sense. If that's a problem, we should take stop jobs out of the pipeline entirely (via smart deploys, for example).
- Triggering a manual action should then enable subsequent stages to run.
There might be a separate request to retry jobs after re-running a manual job, but we don't do that currently when retrying a job, so we shouldn't do that for manual jobs (yet). (https://gitlab.com/gitlab-org/gitlab-ce/issues/26499)