Skip to content

Commit

Permalink
feat(cloudevents-server): do not send the canceled pr and tr to lark (#…
Browse files Browse the repository at this point in the history
…216)

Signed-off-by: wuhuizuo <[email protected]>
  • Loading branch information
wuhuizuo authored Dec 26, 2024
1 parent 492a0b1 commit 9e14d2a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 6 deletions.
34 changes: 28 additions & 6 deletions cloudevents-server/pkg/events/tekton/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,10 @@ func extractLarkInfosFromEvent(event cloudevents.Event, baseURL string, tailLogL

switch {
case data.PipelineRun != nil:
fillInfosWithPipelineRun(data.PipelineRun, &ret)
if !fillInfosWithPipelineRun(data.PipelineRun, &ret) {
return nil, nil
}

if event.Type() == string(tektoncloudevent.PipelineRunFailedEventV1) {
namespace := data.PipelineRun.Namespace
ret.FailedTasks = getFailedTasks(data.PipelineRun, func(podName, containerName string) string {
Expand All @@ -107,7 +110,10 @@ func extractLarkInfosFromEvent(event cloudevents.Event, baseURL string, tailLogL
})
}
case data.TaskRun != nil:
fillInfosWithTaskRun(data.TaskRun, &ret)
if !fillInfosWithTaskRun(data.TaskRun, &ret) {
return nil, nil
}

if event.Type() == string(tektoncloudevent.TaskRunFailedEventV1) {
namespace := data.TaskRun.Namespace
ret.StepStatuses = getStepStatuses(&data.TaskRun.Status, func(podName, containerName string) string {
Expand All @@ -117,13 +123,15 @@ func extractLarkInfosFromEvent(event cloudevents.Event, baseURL string, tailLogL
})
}
case data.Run != nil:
fillInfosWithCustomRun(data.Run, &ret)
if !fillInfosWithCustomRun(data.Run, &ret) {
return nil, nil
}
}

return &ret, nil
}

func fillInfosWithCustomRun(data *v1alpha1.Run, ret *cardMessageInfos) {
func fillInfosWithCustomRun(data *v1alpha1.Run, ret *cardMessageInfos) bool {
fillTimeFileds(ret, data.Status.StartTime, data.Status.CompletionTime)

for _, p := range data.Spec.Params {
Expand All @@ -135,9 +143,11 @@ func fillInfosWithCustomRun(data *v1alpha1.Run, ret *cardMessageInfos) {
ret.Results = append(ret.Results, [2]string{r.Name, r.Value})
}
}

return true
}

func fillInfosWithTaskRun(data *v1beta1.TaskRun, ret *cardMessageInfos) {
func fillInfosWithTaskRun(data *v1beta1.TaskRun, ret *cardMessageInfos) bool {
fillTimeFileds(ret, data.Status.StartTime, data.Status.CompletionTime)

for _, p := range data.Spec.Params {
Expand All @@ -146,6 +156,10 @@ func fillInfosWithTaskRun(data *v1beta1.TaskRun, ret *cardMessageInfos) {
}
succeededCondition := data.Status.GetCondition(apis.ConditionSucceeded)
if succeededCondition.IsFalse() {
if succeededCondition.GetReason() == "TaskRunCancelled" {
return false
}

ret.FailedMessage = succeededCondition.Message
ret.RerunURL = fmt.Sprintf("tkn -n %s task start %s --use-taskrun %s",
data.Namespace, data.Spec.TaskRef.Name, data.Name)
Expand All @@ -156,9 +170,11 @@ func fillInfosWithTaskRun(data *v1beta1.TaskRun, ret *cardMessageInfos) {
ret.Results = append(ret.Results, [2]string{r.Name, string(v)})
}
}

return true
}

func fillInfosWithPipelineRun(data *v1beta1.PipelineRun, ret *cardMessageInfos) {
func fillInfosWithPipelineRun(data *v1beta1.PipelineRun, ret *cardMessageInfos) bool {
fillTimeFileds(ret, data.Status.StartTime, data.Status.CompletionTime)

for _, p := range data.Spec.Params {
Expand All @@ -167,6 +183,10 @@ func fillInfosWithPipelineRun(data *v1beta1.PipelineRun, ret *cardMessageInfos)
}
succeededCondition := data.Status.GetCondition(apis.ConditionSucceeded)
if succeededCondition.IsFalse() {
if succeededCondition.GetReason() == "Cancelled" {
return false
}

ret.FailedMessage = succeededCondition.Message
ret.RerunURL = fmt.Sprintf("tkn -n %s pipeline start %s --use-pipelinerun %s",
data.Namespace, data.Spec.PipelineRef.Name, data.Name)
Expand All @@ -176,6 +196,8 @@ func fillInfosWithPipelineRun(data *v1beta1.PipelineRun, ret *cardMessageInfos)
ret.Results = append(ret.Results, [2]string{r.Name, r.Value.StringVal})
}
}

return true
}

func getFailedTasks(data *v1beta1.PipelineRun, logGetter func(podName, containerName string) string) map[string][]stepInfo {
Expand Down
4 changes: 4 additions & 0 deletions cloudevents-server/pkg/events/tekton/lark.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ func sendLarkMessage(client *lark.Client, createMsgReq *larkim.CreateMessageReq)
}

func composeLarkMessages(receivers []string, infos *cardMessageInfos) ([]*larkim.CreateMessageReq, error) {
if infos == nil {
return nil, nil
}

messageRawStr, err := newLarkCardWithGoTemplate(infos)
if err != nil {
return nil, err
Expand Down

0 comments on commit 9e14d2a

Please sign in to comment.