diff --git a/pkg/pod/status.go b/pkg/pod/status.go index 5cddaffb546..82f1bd4ac33 100644 --- a/pkg/pod/status.go +++ b/pkg/pod/status.go @@ -167,8 +167,8 @@ func setTaskRunStatusBasedOnStepStatus(logger *zap.SugaredLogger, stepStatuses [ merr = multierror.Append(merr, err) } taskResults, pipelineResourceResults, filteredResults := filterResultsAndResources(results) + trs.TaskRunResults = append(trs.TaskRunResults, taskResults...) if tr.IsSuccessful() { - trs.TaskRunResults = append(trs.TaskRunResults, taskResults...) trs.ResourcesResult = append(trs.ResourcesResult, pipelineResourceResults...) } msg, err = createMessageFromResults(filteredResults) diff --git a/pkg/pod/status_test.go b/pkg/pod/status_test.go index e2c8f4e9dee..538c7141958 100644 --- a/pkg/pod/status_test.go +++ b/pkg/pod/status_test.go @@ -17,6 +17,7 @@ limitations under the License. package pod import ( + "fmt" "strings" "testing" "time" @@ -89,6 +90,48 @@ func TestSetTaskRunStatusBasedOnStepStatus(t *testing.T) { } } +func TestSetTaskRunStatusBasedOnStepStatus_OnFailedTaskRun(t *testing.T) { + resultKey := "resultName" + resultVal := "resultValue" + cs := []corev1.ContainerStatus{{ + Name: "step-bar-0", + State: corev1.ContainerState{ + Terminated: &corev1.ContainerStateTerminated{ + Message: fmt.Sprintf(`[{"key":"%s","value":"%s", "type":1}, {"key":"digest","value":"sha256:1234","resourceName":"source-image"}]`, resultKey, resultVal), + }, + }, + }} + tr := v1beta1.TaskRun{ + ObjectMeta: metav1.ObjectMeta{ + Name: "task-run", + Namespace: "foo", + }, + Status: v1beta1.TaskRunStatus{ + TaskRunStatusFields: v1beta1.TaskRunStatusFields{ + CompletionTime: &metav1.Time{Time: time.Now()}, + }, + Status: statusFailure(v1beta1.TaskRunReasonFailed.String(), "error message"), + }, + } + expected := []v1beta1.TaskRunResult{{ + Name: resultKey, + Type: v1beta1.ResultsTypeString, + Value: v1beta1.ArrayOrString{ + Type: v1beta1.ParamTypeString, + StringVal: resultVal, + }, + }} + + logger, _ := logging.NewLogger("", "status") + merr := setTaskRunStatusBasedOnStepStatus(logger, cs, &tr) + if merr != nil { + t.Errorf("setTaskRunStatusBasedOnStepStatus: %s", merr) + } + if d := cmp.Diff(expected, tr.Status.TaskRunResults); d != "" { + t.Errorf("Unexpected status: %s", diff.PrintWantGot(d)) + } +} + func TestMakeTaskRunStatus(t *testing.T) { for _, c := range []struct { desc string