fix: preserve platform builder failure diagnostics

This commit is contained in:
npc0-hue
2026-08-25 22:48:57 +08:00
parent 321bda3f2f
commit a90474f896
2 changed files with 21 additions and 1 deletions
+9 -1
View File
@@ -297,7 +297,7 @@ func (builder *DockerDistributionBuilder) BuildWithProgress(input domain.Distrib
if errors.Is(ctx.Err(), context.DeadlineExceeded) {
return nil, validationError("platform builder timed out while building the distribution")
}
return nil, validationError("platform builder failed: " + safeBuilderFailure(output, input.AuthKey, builder.config.SourceDir, sourceDir, jobDir))
return nil, validationError("platform builder failed: " + safeBuilderFailureWithCommandError(output, err, input.AuthKey, builder.config.SourceDir, sourceDir, jobDir))
}
reportBuilderProgress(progress, 92, "package_finalize: reading platform builder output")
binary, err := os.ReadFile(filepath.Join(outputDir, outputName))
@@ -678,6 +678,14 @@ func safeBuilderFailure(output []byte, sensitiveValues ...string) string {
return joined
}
func safeBuilderFailureWithCommandError(output []byte, commandErr error, sensitiveValues ...string) string {
message := safeBuilderFailure(output, sensitiveValues...)
if commandErr == nil || !strings.HasPrefix(message, "build command reported no ") {
return message
}
return safeBuilderFailure([]byte(commandErr.Error()), sensitiveValues...)
}
func redactBuilderHostPaths(line string) string {
fields := strings.Fields(line)
for index, field := range fields {