Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions pkg/cmd/pipelinerun/describe_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,79 @@ func TestPipelineRunDescribe_multiple_taskrun_ordering(t *testing.T) {

}

func TestPipelineRunDescribe_multiple_taskrun_without_status(t *testing.T) {
clock := clockwork.NewFakeClock()

trs := []*v1alpha1.TaskRun{
tb.TaskRun("tr-1",
tb.TaskRunNamespace("ns"),
tb.TaskRunStatus(
tb.TaskRunStartTime(clock.Now().Add(2*time.Minute)),
cb.TaskRunCompletionTime(clock.Now().Add(5*time.Minute)),
tb.StatusCondition(apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
}),
),
),
}

pipelineRuns := []*v1alpha1.PipelineRun{
tb.PipelineRun("pipeline-run",
tb.PipelineRunNamespace("ns"),
cb.PipelineRunCreationTimestamp(clock.Now()),
tb.PipelineRunLabel("tekton.dev/pipeline", "pipeline"),
tb.PipelineRunSpec("pipeline"),
tb.PipelineRunStatus(
tb.PipelineRunTaskRunsStatus("tr-0", &v1alpha1.PipelineRunTaskRunStatus{
PipelineTaskName: "t-0",
}),
tb.PipelineRunTaskRunsStatus("tr-1", &v1alpha1.PipelineRunTaskRunStatus{
PipelineTaskName: "t-1",
Status: &trs[0].Status,
}),
tb.PipelineRunStatusCondition(apis.Condition{
Status: corev1.ConditionFalse,
Reason: v1beta1.PipelineRunReasonFailed.String(),
}),
tb.PipelineRunStartTime(clock.Now()),
cb.PipelineRunCompletionTime(clock.Now().Add(5*time.Minute)),
),
),
}

namespaces := []*corev1.Namespace{
{
ObjectMeta: metav1.ObjectMeta{
Name: "ns",
},
},
}

version := "v1alpha1"
tdc := testDynamic.Options{}
dynamic, err := tdc.Client(
cb.UnstructuredPR(pipelineRuns[0], version),
cb.UnstructuredTR(trs[0], version),
)
if err != nil {
t.Errorf("unable to create dynamic client: %v", err)
}
cs, _ := test.SeedTestData(t, pipelinetest.Data{Namespaces: namespaces, PipelineRuns: pipelineRuns,
TaskRuns: trs,
})
cs.Pipeline.Resources = cb.APIResourceList(version, []string{"pipelinerun", "taskrun"})
p := &test.Params{Tekton: cs.Pipeline, Kube: cs.Kube, Dynamic: dynamic, Clock: clock}

pipelinerun := Command(p)
clock.Advance(10 * time.Minute)
actual, err := test.ExecuteCommand(pipelinerun, "desc", "pipeline-run", "-n", "ns")
if err != nil {
t.Errorf("Unexpected error: %v", err)
}
golden.Assert(t, actual, fmt.Sprintf("%s.golden", t.Name()))
}

func TestPipelineRunDescribe_failed(t *testing.T) {
clock := clockwork.NewFakeClock()

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Name: pipeline-run
Namespace: ns
Pipeline Ref: pipeline
Timeout: 1h0m0s
Labels:
tekton.dev/pipeline=pipeline

Status

STARTED DURATION STATUS
10 minutes ago 5 minutes Failed

Resources

No resources

Params

No params

Results

No results

Workspaces

No workspaces

Taskruns

NAME TASK NAME STARTED DURATION STATUS
tr-1 t-1 8 minutes ago 3 minutes Succeeded
3 changes: 3 additions & 0 deletions pkg/pipelinerun/description/description.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ func hasFailed(pr *v1beta1.PipelineRun) string {

if pr.Status.Conditions[0].Status == corev1.ConditionFalse {
for _, tr := range pr.Status.TaskRuns {
if tr.Status == nil {
continue
}
if len(tr.Status.Conditions) == 0 {
continue
}
Expand Down