Skip to content

Commit a0737b1

Browse files
committed
Decoration
1 parent 4f3f1b9 commit a0737b1

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

services/mailer/mail_workflow_run.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,27 @@ func generateMessageIDForActionsWorkflowRunStatusEmail(repo *repo_model.Reposito
3535
}
3636

3737
func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Repository, run *actions_model.ActionRun, sender *user_model.User, recipients []*user_model.User) {
38-
messageID := generateMessageIDForActionsWorkflowRunStatusEmail(repo, run)
39-
headers := generateMetadataHeaders(repo)
40-
4138
subject := "Run"
4239
switch run.Status {
4340
case actions_model.StatusFailure:
4441
subject += " failed"
4542
case actions_model.StatusCancelled:
4643
subject += " cancelled"
4744
case actions_model.StatusSuccess:
48-
subject += " is successful"
45+
subject += " succeeded"
4946
}
5047
subject = fmt.Sprintf("%s: %s (%s)", subject, run.WorkflowID, base.ShortSha(run.CommitSHA))
48+
displayName := fromDisplayName(sender)
49+
messageID := generateMessageIDForActionsWorkflowRunStatusEmail(repo, run)
50+
metadataHeaders := generateMetadataHeaders(repo)
5151

52-
jobs0, err := actions_model.GetRunJobsByRunID(ctx, run.ID)
52+
jobs, err := actions_model.GetRunJobsByRunID(ctx, run.ID)
5353
if err != nil {
5454
log.Error("GetRunJobsByRunID: %v", err)
5555
} else {
56-
sort.SliceStable(jobs0, func(i, j int) bool {
57-
si := jobs0[i].Status
58-
sj := jobs0[j].Status
56+
sort.SliceStable(jobs, func(i, j int) bool {
57+
si := jobs[i].Status
58+
sj := jobs[j].Status
5959
if si.IsSuccess() {
6060
si = 99
6161
}
@@ -65,23 +65,21 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
6565
return si < sj
6666
})
6767
}
68-
convertedJobs := make([]convertedWorkflowJob, 0, len(jobs0))
69-
for _, job := range jobs0 {
70-
c, err := convert.ToActionWorkflowJob(ctx, repo, nil, job)
68+
convertedJobs := make([]convertedWorkflowJob, 0, len(jobs))
69+
for _, job := range jobs {
70+
converted0, err := convert.ToActionWorkflowJob(ctx, repo, nil, job)
7171
if err != nil {
7272
log.Error("convert.ToActionWorkflowJob: %v", err)
7373
continue
7474
}
7575
convertedJobs = append(convertedJobs, convertedWorkflowJob{
76-
HTMLURL: c.HTMLURL,
77-
Name: c.Name,
76+
HTMLURL: converted0.HTMLURL,
77+
Name: converted0.Name,
7878
Status: job.Status,
79-
Attempt: c.RunAttempt,
79+
Attempt: converted0.RunAttempt,
8080
})
8181
}
8282

83-
displayName := fromDisplayName(sender)
84-
8583
langMap := make(map[string][]*user_model.User)
8684
for _, user := range recipients {
8785
langMap[user.Language] = append(langMap[user.Language], user)
@@ -91,11 +89,17 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
9189
var runStatusText string
9290
switch run.Status {
9391
case actions_model.StatusSuccess:
94-
runStatusText = locale.TrString("actions.status.success")
92+
runStatusText = "All jobs have succeeded"
9593
case actions_model.StatusFailure:
96-
runStatusText = locale.TrString("actions.status.failure")
94+
runStatusText = "All jobs have failed"
95+
for _, job := range jobs {
96+
if !job.Status.IsFailure() {
97+
runStatusText = "Some jobs were not successful"
98+
break
99+
}
100+
}
97101
case actions_model.StatusCancelled:
98-
runStatusText = locale.TrString("actions.status.cancelled")
102+
runStatusText = "All jobs have been cancelled"
99103
}
100104
var mailBody bytes.Buffer
101105
if err := bodyTemplates.ExecuteTemplate(&mailBody, tplWorkflowRun, map[string]any{
@@ -122,7 +126,7 @@ func sendActionsWorkflowRunStatusEmail(ctx context.Context, repo *repo_model.Rep
122126
for k, v := range generateSenderRecipientHeaders(sender, rec) {
123127
msg.SetHeader(k, v)
124128
}
125-
for k, v := range headers {
129+
for k, v := range metadataHeaders {
126130
msg.SetHeader(k, v)
127131
}
128132
msg.SetHeader("Message-ID", messageID)

0 commit comments

Comments
 (0)