Wrap plain errors in some executors' Prepare() with BuildError
What does this MR do?
Wrap plain errors in some executors' Prepare() with BuildError
Wrap deterministic config-validation failures in docker, ssh, instance, and autoscaler executors' Prepare() paths as *BuildError{ConfigurationError} instead of letting them fall through to runner_system_failure.
Sites wrapped:
- docker: missing docker config, PassFile check, script incompatible
- ssh: PassFile check, missing SSH config
- instance: PassFile check
- autoscaler: cloud plugin missing suspend/resume capability
Follows the same pattern as the Kubernetes Prepare() wrap (!6881 (merged)).
Why was this MR needed?
For better failure-reason attribution and improve SLI.
What's the best way to test this MR?
What are the relevant issue numbers?
Edited by Taka Nishida