Set explicit FailureReason on BuildError constructions across executors
What does this MR do?
Set explicit FailureReason on BuildError constructions across executors
- Set
ConfigurationErroron user/admin configuration errors:builds_dir/cache_dirnot set,GIT_CLONE_PATHviolations, CI/CD input expansion failures, custom executor missing config/RunExec, Docker invalid service name / invalid log config / malformed volume config, Kubernetes InvalidImageName - Set
ScriptFailureon all executor script exit-code paths (shell, ssh, parallels, virtualbox, docker-wait, k8s exec/attach, custom command) to make intent explicit rather than relying on the catch-all mapper - Set
RunnerSystemFailureon docker missing-volume-parser nil check (was falling through toScriptFailurevia empty FailureReason) - Fix pull/manager.go registry auth encoding error from
ImagePullFailuretoRunnerSystemFailure(unreachable internal path, not an image pull failure)
This changes are based on the investigation on the spreadsheet MR to see where this MR covers.
Why was this MR needed?
To attribute the correct failure reasons.
What's the best way to test this MR?
I think unit tests should be enough for this changes.
What are the relevant issue numbers?
Edited by Taka Nishida