Skip to content

Commit ae2b9ef

Browse files
committed
Catch exceptions and warn on update check failure
When trying to find updates from a repository/feed, transient network issues might cause that invocation to fail. This should not cause the entire tool run to fail though. Fixes #30
1 parent 68b72e5 commit ae2b9ef

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

src/dotnet-evergreen/Tools.cs

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -51,25 +51,34 @@ public Tools(string dotnet, bool quiet, string packageFeed = DefaultPackageFeed)
5151

5252
public async Task<NuGetVersion?> FindUpdateAsync(string packageId, NuGetVersion localVersion)
5353
{
54-
var providers = Repository.Provider.GetCoreV3();
55-
var repository = new SourceRepository(new PackageSource(packageFeed), providers);
56-
var resource = await repository.GetResourceAsync<PackageMetadataResource>().ConfigureAwait(false);
57-
var metadata = await resource.GetMetadataAsync(packageId, false, false,
58-
new SourceCacheContext
59-
{
60-
NoCache = true,
61-
RefreshMemoryCache = true,
62-
},
63-
NullLogger.Instance, CancellationToken.None).ConfigureAwait(false);
64-
65-
var update = metadata
66-
.Select(x => x.Identity)
67-
.Where(x => x.Version > localVersion)
68-
.OrderByDescending(x => x.Version)
69-
.Select(x => x.Version)
70-
.FirstOrDefault();
71-
72-
return update;
54+
try
55+
{
56+
var providers = Repository.Provider.GetCoreV3();
57+
var repository = new SourceRepository(new PackageSource(packageFeed), providers);
58+
var resource = await repository.GetResourceAsync<PackageMetadataResource>().ConfigureAwait(false);
59+
var metadata = await resource.GetMetadataAsync(packageId, false, false,
60+
new SourceCacheContext
61+
{
62+
NoCache = true,
63+
RefreshMemoryCache = true,
64+
},
65+
NullLogger.Instance, CancellationToken.None).ConfigureAwait(false);
66+
67+
var update = metadata
68+
.Select(x => x.Identity)
69+
.Where(x => x.Version > localVersion)
70+
.OrderByDescending(x => x.Version)
71+
.Select(x => x.Version)
72+
.FirstOrDefault();
73+
74+
return update;
75+
76+
}
77+
catch (Exception)
78+
{
79+
AnsiConsole.Write(new Paragraph("Failed to query repository for updates.", new Style(Color.Yellow)));
80+
return null;
81+
}
7382
}
7483

7584
public bool Install(string packageId)

0 commit comments

Comments
 (0)