Allow custom executor to define shell for jobs
Description
I have a custom executor which is able to create environments of varying OS types (Linux, Windows, MacOS, ...) Currently i have to create dedicated runner instances for each type of shell used inside of those environments. Ideally i would like to use one runner and have the executor provide the information which shell to use for a job.
Proposal
The prepare step already provides an API to inject custom build configuration into the runner (currently only the build and cache directory). Extending this would allow the executor to configure the runner with the appropriate shell which is then used for the remaining build steps.
How and where the executor gets this information is up to the individual implementation. The value should be optional and fall back to the value of the runner configuration.
{
"shell": "powershell",
"builds_dir": "/build",
"cache_dir": "/cache",
"builds_dir_is_shared": false,
"hostname": "custom-executor01.ci.example.com",
"driver": {
"name": "custom",
"version": "1.0.0",
}
}