Support for `when: manual` in bridge jobs
Problem to solve
Allow multi-project pipelines to be triggered by manual user intervention using the usual when: manual syntax on the bridge job.
Intended users
Users of multi-project pipelines.
Further details
For instance, in the Glasgow Haskell Compiler installation we have a job at the end of our CI pipeline which can be used to trigger a build of a collection of user packages with the compiler built by an earlier job in the pipeline. Since such builds are rather expensive, we configure this job to only run when manually triggered in merge request pipelines.
Until GitLab 12.3 there was no proper support for tying the status of the bridge pipeline to the status of the downstream job and consequently we relied on a terrible shell script to implement this job.
We would much rather use the proper job status attribution support introduced in GitLab 12.3 but unfortunately support for the when: manual field appears to be unimplemented. To cite the documentation:
Configuration keywords available for bridge jobs are:
when(only withon_success,on_failure, andalways values)
No justification is given for why this limitation was imposed.
Proposal
The when: manual field be allowed in bridge job definitions.
Permissions and Security
It's not clear that this has any notable security implications.
Documentation
The Multi-project pipeline documentation would need to be updated to reflect this change.
Testing
Nothing in particular notable here.
What does success look like, and how can we measure that?
Pipeline authors would be able to use when: manual in their bridge job definitions.