Enable powershell via stdin by default
What does this MR do?
Passes Powershell scripts via stdin for all executors, rather than just shell and custom.
A feature flag has been added to restore the old behaviour in case we encounter an edge case, but confidence is high because we've been doing this with pwsh
without issue for some time. The feature flag should be short lived and eventually removed.
Why was this MR needed?
There were previously two Powershell related bugs preventing this:
- Script execution via stdin works as if commands are being typed at a shell, which has different execution characteristics. We've solved this by wrapping the script in blocks.
- Input and output encoding was not UTF-8 encoded, but our input scripts were. This was fixed in Force powershell/pwsh input/output encoding to ... (!3707 - merged).
What's the best way to test this MR?
TBC
What are the relevant issue numbers?
Closes #29000 (closed)