diff --git a/src/Sdk/WebApi/WebApi/Contracts.cs b/src/Sdk/WebApi/WebApi/Contracts.cs index 8da6bf236ff..45cd20fdde5 100644 --- a/src/Sdk/WebApi/WebApi/Contracts.cs +++ b/src/Sdk/WebApi/WebApi/Contracts.cs @@ -157,6 +157,8 @@ public class Step public string StartedAt; [DataMember] public string CompletedAt; + [DataMember] + public Conclusion Conclusion; } public enum Status @@ -167,6 +169,15 @@ public enum Status StatusCompleted = 6 } + public enum Conclusion + { + ConclusionUnknown = 0, + ConclusionSuccess = 2, + ConclusionFailure = 3, + ConclusionCancelled = 4, + ConclusionSkipped = 7, + } + public static class BlobStorageTypes { public static readonly string AzureBlobStorage = "BLOB_STORAGE_TYPE_AZURE"; diff --git a/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs b/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs index b80740f44a5..42721c0e8ed 100644 --- a/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs @@ -329,7 +329,8 @@ private Step ConvertTimelineRecordToStep(TimelineRecord r) Name = r.Name, Status = ConvertStateToStatus(r.State.GetValueOrDefault()), StartedAt = r.StartTime?.ToString(Constants.TimestampFormat), - CompletedAt = r.FinishTime?.ToString(Constants.TimestampFormat) + CompletedAt = r.FinishTime?.ToString(Constants.TimestampFormat), + Conclusion = ConvertResultToConclusion(r.Result.GetValueOrDefault()) }; } @@ -348,6 +349,24 @@ private Status ConvertStateToStatus(TimelineRecordState s) } } + private Conclusion ConvertResultToConclusion(TaskResult r) + { + switch (r) + { + case TaskResult.Succeeded: + case TaskResult.SucceededWithIssues: + return Conclusion.ConclusionSuccess; + case TaskResult.Canceled: + return Conclusion.ConclusionCancelled; + case TaskResult.Skipped: + return Conclusion.ConclusionSkipped; + case TaskResult.Failed: + return Conclusion.ConclusionFailure; + default: + return Conclusion.ConclusionUnknown; + } + } + public async Task UpdateWorkflowStepsAsync(Guid planId, IEnumerable records, CancellationToken cancellationToken) { var timestamp = DateTime.UtcNow.ToString(Constants.TimestampFormat);