From 28428dacf8ebc6f642247b61104f231a38af2013 Mon Sep 17 00:00:00 2001 From: Alex Perovich Date: Tue, 12 Oct 2021 15:40:37 -0700 Subject: [PATCH] Fix keys for feed overrides --- .../src/PublishArtifactsInManifestV3.cs | 3 ++- .../src/model/SetupTargetFeedConfigV3.cs | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestV3.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestV3.cs index 3c52c65c564..4c72f491ab2 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestV3.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestV3.cs @@ -137,7 +137,8 @@ public override async Task ExecuteAsync() BuildEngine, targetChannelConfig.SymbolTargetType, filesToExclude: targetChannelConfig.FilenamesToExclude, - flatten: targetChannelConfig.Flatten); + flatten: targetChannelConfig.Flatten, + log: Log); var targetFeedConfigs = targetFeedsSetup.Setup(); diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs index 8ecbec26bd9..999a3c70c58 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; using Microsoft.DotNet.Build.Tasks.Feed.Model; namespace Microsoft.DotNet.Build.Tasks.Feed @@ -27,6 +28,8 @@ public class SetupTargetFeedConfigV3 : SetupTargetFeedConfigBase private bool Flatten { get; } + public TaskLoggingHelper Log { get; } + public SetupTargetFeedConfigV3( TargetChannelConfig targetChannelConfig, bool isInternalBuild, @@ -43,7 +46,8 @@ public SetupTargetFeedConfigV3( string stablePackagesFeed = null, string stableSymbolsFeed = null, ImmutableList filesToExclude = null, - bool flatten = true) + bool flatten = true, + TaskLoggingHelper log = null) : base(isInternalBuild, isStableBuild, repositoryName, commitSha, null, publishInstallersAndChecksums, null, null, null, null, null, null, null, latestLinkShortUrlPrefix, null) { _targetChannelConfig = targetChannelConfig; @@ -57,6 +61,7 @@ public SetupTargetFeedConfigV3( FeedSasUris = feedSasUris.ToImmutableDictionary(i => i.ItemSpec, i => ConvertFromBase64(i.GetMetadata("Base64Uri"))); FeedOverrides = feedOverrides.ToImmutableDictionary(i => i.ItemSpec, i => i.GetMetadata("Replacement")); AzureDevOpsFeedsKey = FeedKeys.TryGetValue("https://pkgs.dev.azure.com/dnceng", out string key) ? key : null; + Log = log; } private static string ConvertFromBase64(string value) @@ -164,8 +169,8 @@ private IEnumerable Feeds() continue; } - var feed = spec.FeedUrl; - feed = GetFeedOverride(feed); + var oldFeed = spec.FeedUrl; + var feed = GetFeedOverride(oldFeed); if (type is TargetFeedContentType.Package && spec.Assets == AssetSelection.ShippingOnly && FeedOverrides.TryGetValue("transport-packages", out string newFeed)) @@ -180,6 +185,13 @@ private IEnumerable Feeds() } var key = GetFeedKey(feed); var sasUri = GetFeedSasUri(feed); + if (feed != oldFeed && string.IsNullOrEmpty(key) && string.IsNullOrEmpty(sasUri)) + { + Log?.LogMessage($"No keys found for {feed}, falling back to keys for {oldFeed}."); + // if we used an override, and didn't find a key, fallback to the keys for the non-override value + key = GetFeedKey(oldFeed); + sasUri = GetFeedSasUri(oldFeed); + } var feedType = feed.StartsWith("https://pkgs.dev.azure.com") ? FeedType.AzDoNugetFeed : (sasUri != null ? FeedType.AzureStorageContainer : FeedType.AzureStorageFeed);