diff --git a/src/Runner.Common/JobServerQueue.cs b/src/Runner.Common/JobServerQueue.cs index d494645f1..d6fbadc1c 100644 --- a/src/Runner.Common/JobServerQueue.cs +++ b/src/Runner.Common/JobServerQueue.cs @@ -799,6 +799,7 @@ namespace GitHub.Runner.Common Trace.Verbose($" Record: t={record.RecordType}, n={record.Name}, s={record.State}, st={record.StartTime}, {record.PercentComplete}%, ft={record.FinishTime}, r={record.Result}: {record.CurrentOperation}"); if (record.Issues != null) { + removeDuplicatedIssues(record); foreach (var issue in record.Issues) { String source; @@ -819,6 +820,18 @@ namespace GitHub.Runner.Common return mergedRecords; } + private void removeDuplicatedIssues(TimelineRecord timelineRecord) + { + Dictionary issuesMap = new Dictionary(); + foreach (var i in timelineRecord.Issues) + { + issuesMap.TryAdd(i.Message, i); + } + timelineRecord.Issues.Clear(); + + timelineRecord.Issues.AddRange(issuesMap.Select(entry => entry.Value).ToList()); + } + private async Task UploadFile(UploadFileInfo file) { bool uploadSucceed = false;