Optional manual action becomes blocking when it is started
We have a build job which has a long runtime. We therefore use
when: manual to run this job only when we deem it is necessary. For example, if our changes can break the build. We want to merge with successful pipeline if we do not start the job manually, but we want the pipeline to fail if we do start the job and it fails.
Despite our warnings, our developers keep using the button "merge when pipeline succeeds" while the manual job is still running. And of course, the merge will happen even if the manual job fails, because it is optional. We also cannot set
allow_failure: false, because then we would have to run the job on every merge request, which for us would defeat the purpose of making it a manually triggered job.
I propose adding another configuration option for a manually triggered job which is optional (pipeline succeeds if the job never started), but becomes mandatory as soon as it is started manually (pipeline fails if the job is started and fails).
Make sure these are completed before closing the issue, with a link to the relevant commit.