diff --git a/src/Sdk/WebApi/WebApi/Contracts.cs b/src/Sdk/WebApi/WebApi/Contracts.cs index 8da6bf236..45cd20fdd 100644 --- a/src/Sdk/WebApi/WebApi/Contracts.cs +++ b/src/Sdk/WebApi/WebApi/Contracts.cs @@ -157,6 +157,8 @@ namespace GitHub.Services.Results.Contracts public string StartedAt; [DataMember] public string CompletedAt; + [DataMember] + public Conclusion Conclusion; } public enum Status @@ -167,6 +169,15 @@ namespace GitHub.Services.Results.Contracts 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 b80740f44..42721c0e8 100644 --- a/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/ResultsHttpClient.cs @@ -329,7 +329,8 @@ namespace GitHub.Services.Results.Client 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 @@ namespace GitHub.Services.Results.Client } } + 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);