From 678f9e2270a64e5bdb4867510691150f1242862a Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 29 Jun 2023 14:47:55 -0400 Subject: [PATCH] Better error handling in RemoteDeploymentManagers --- .../Remote/GitHubRemoteDeploymentManager.cs | 31 ++++++++++++------- .../Remote/GitLabRemoteDeploymentManager.cs | 23 +++++++++----- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Deployment/Remote/GitHubRemoteDeploymentManager.cs b/src/Tgstation.Server.Host/Components/Deployment/Remote/GitHubRemoteDeploymentManager.cs index d0cf3471ad..769ddaec69 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/Remote/GitHubRemoteDeploymentManager.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/Remote/GitHubRemoteDeploymentManager.cs @@ -129,9 +129,9 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote Logger.LogTrace("In-progress deployment status created"); } - catch (ApiException ex) + catch (Exception ex) when (ex is not OperationCanceledException) { - Logger.LogWarning(ex, "Unable to create deployment!"); + Logger.LogWarning(ex, "Unable to create GitHub deployment!"); } } @@ -257,9 +257,9 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote { await gitHubService.CommentOnIssue(remoteRepositoryOwner, remoteRepositoryName, comment, testMergeNumber, cancellationToken); } - catch (ApiException e) + catch (Exception ex) when (ex is not OperationCanceledException) { - Logger.LogWarning(e, "Error posting GitHub comment!"); + Logger.LogWarning(ex, "Error posting GitHub comment!"); } } @@ -342,14 +342,21 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote var gitHubService = gitHubServiceFactory.CreateService(gitHubAccessToken); - await gitHubService.CreateDeploymentStatus( - new NewDeploymentStatus(deploymentState) - { - Description = description, - }, - compileJob.GitHubRepoId.Value, - compileJob.GitHubDeploymentId.Value, - cancellationToken); + try + { + await gitHubService.CreateDeploymentStatus( + new NewDeploymentStatus(deploymentState) + { + Description = description, + }, + compileJob.GitHubRepoId.Value, + compileJob.GitHubDeploymentId.Value, + cancellationToken); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + Logger.LogWarning(ex, "Error updating GitHub deployment!"); + } } } } diff --git a/src/Tgstation.Server.Host/Components/Deployment/Remote/GitLabRemoteDeploymentManager.cs b/src/Tgstation.Server.Host/Components/Deployment/Remote/GitLabRemoteDeploymentManager.cs index 62c6e31ccd..ef57b93ea7 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/Remote/GitLabRemoteDeploymentManager.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/Remote/GitLabRemoteDeploymentManager.cs @@ -123,7 +123,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote CancellationToken cancellationToken) => Task.CompletedTask; /// - protected override Task CommentOnTestMergeSource( + protected override async Task CommentOnTestMergeSource( RepositorySettings repositorySettings, string remoteRepositoryOwner, string remoteRepositoryName, @@ -135,13 +135,20 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote ? new GitLabClient(GitLabRemoteFeatures.GitLabUrl, repositorySettings.AccessToken) : new GitLabClient(GitLabRemoteFeatures.GitLabUrl); - return client - .MergeRequests - .CreateNoteAsync( - $"{remoteRepositoryOwner}/{remoteRepositoryName}", - testMergeNumber, - new CreateMergeRequestNoteRequest(comment)) - .WithToken(cancellationToken); + try + { + await client + .MergeRequests + .CreateNoteAsync( + $"{remoteRepositoryOwner}/{remoteRepositoryName}", + testMergeNumber, + new CreateMergeRequestNoteRequest(comment)) + .WithToken(cancellationToken); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + Logger.LogWarning(ex, "Error posting GitHub comment!"); + } } ///