Add previously-built aspnetcore artifacts as external dependencies

This commit is contained in:
Nate McMaster 2017-10-09 12:54:22 -07:00
parent 869d762641
commit c76125af0e
3 changed files with 75 additions and 43 deletions

View File

@ -132,7 +132,7 @@
<ExternalDependency Include="BenchmarkDotNet" Version="0.10.3" Source="$(DefaultNuGetFeed)" Private="true"/>
<ExternalDependency Include="EntityFramework" Version="6.1.3" Source="$(DefaultNuGetFeed)" Private="true" />
<ExternalDependency Include="FSharp.Core" Version="4.2.1" Source="$(DefaultNuGetFeed)" Private="true" />
<ExternalDependency Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.1.1" Source="$(DefaultNuGetFeed)"/>
<ExternalDependency Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.1.1" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.AspNet.Identity.EntityFramework" Version="2.2.1" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.AspNet.WebApi.Client" Version="5.2.2" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Azure.KeyVault" Version="2.3.2" Source="$(DefaultNuGetFeed)" />
@ -253,4 +253,75 @@
<NoWarn>KRB2004</NoWarn>
</ExternalDependency>
</ItemGroup>
<!--
**********************************************************
Packages built in a previous version of ASP.NET Core, but
not building again in this patch.
**********************************************************
-->
<!-- Shipped dependencies from previous builds -->
<ItemGroup>
<ExternalDependency Include="Microsoft.AspNetCore.Html.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.AspNetCore.JsonPatch" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.AspNetCore.Testing" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Data.Sqlite" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Data.Sqlite.Core" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Caching.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Caching.Memory" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Caching.Redis" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Caching.SqlServer" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.Binder" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.CommandLine" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Configuration.UserSecrets" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.DiagnosticAdapter" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Composite" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.FileProviders.Physical" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.FileSystemGlobbing" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Abstractions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Configuration" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Console" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Logging.Testing" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.ObjectPool" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Options" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.Primitives" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
<ExternalDependency Include="Microsoft.Extensions.WebEncoders" Version="2.0.0" Source="$(DefaultNuGetFeed)" />
</ItemGroup>
<!-- Non-shipped dependencies from previous builds -->
<PropertyGroup>
<AspNetCoreMasterFeed>https://dotnet.myget.org/F/aspnetcore-master/api/v3/index.json</AspNetCoreMasterFeed>
</PropertyGroup>
<ItemGroup>
<ExternalDependency Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.CopyOnWriteDictionary.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.ObjectMethodExecutor.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.Process.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.PropertyActivator.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.PropertyHelper.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.RazorViews.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.SecurityHelper.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.StackTrace.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.TypeNameHelper.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
<ExternalDependency Include="Microsoft.Extensions.WebEncoders.Sources" Version="2.0.0" Source="$(AspNetCoreMasterFeed)" Private="true" Mirror="true" />
</ItemGroup>
</Project>

View File

@ -48,7 +48,6 @@
<ItemGroup>
<_LineupPackages Include="@(ExternalDependency)" />
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
<_LineupPackages Include="%(ShippedArtifactInfo.PackageId)" Version="%(ShippedArtifactInfo.Version)" Condition=" '%(ShippedArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
<_LineupSources Include="$(_DependencyPackagesDirectory)" Condition="'$(_DependencyPackagesDirectory)' != '' AND Exists('$(_DependencyPackagesDirectory)')" />
<_LineupSources Include="$(BuildDir)" />
@ -200,7 +199,6 @@
Solutions="@(Solution)"
Artifacts="@(ArtifactInfo)"
Dependencies="@(ExternalDependency)"
ShippedArtifacts="@(ShippedArtifactInfo)"
StartGraphAt="$(BuildGraphOf)"
Properties="Configuration=$(Configuration);BuildNumber=$(BuildNumber);DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)">
<Output TaskParameter="RepositoryBuildOrder" ItemName="RepositoryBuildOrder" />

View File

@ -34,10 +34,6 @@ namespace RepoTasks
[Required]
public ITaskItem[] Dependencies { get; set; }
// Artifacts that already shipped from repos
[Required]
public ITaskItem[] ShippedArtifacts { get; set; }
[Required]
public string Properties { get; set; }
@ -90,12 +86,6 @@ namespace RepoTasks
private void EnsureConsistentGraph(IEnumerable<ArtifactInfo.Package> packages, IEnumerable<SolutionInfo> solutions)
{
var shippedPackageMap = ShippedArtifacts
.Select(ArtifactInfo.Parse)
.OfType<ArtifactInfo.Package>()
.Where(p => !p.IsSymbolsArtifact)
.ToDictionary(p => p.PackageInfo.Id, p => p, StringComparer.OrdinalIgnoreCase);
// ensure versions cascade
var buildPackageMap = packages.ToDictionary(p => p.PackageInfo.Id, p => p, StringComparer.OrdinalIgnoreCase);
var dependencyMap = new Dictionary<string, List<string>>(StringComparer.OrdinalIgnoreCase);
@ -126,27 +116,8 @@ namespace RepoTasks
if (!buildPackageMap.TryGetValue(dependency.Key, out var package))
{
// This dependency is not one of the packages that will be compiled by this run of Universe.
var matchesExternalDependency = false;
if (shippedPackageMap.TryGetValue(dependency.Key, out var shippedPackage))
{
if (string.IsNullOrEmpty(dependency.Value.Version))
{
Log.LogKoreBuildError(
project.FullPath,
KoreBuildErrors.EmptyPackageReferenceVersion,
message: $"Package reference to {dependency.Key} has an empty version");
continue;
}
matchesExternalDependency = shippedPackage.PackageInfo.Version.Equals(NuGetVersion.Parse(dependency.Value.Version));
}
else if (dependencyMap.TryGetValue(dependency.Key, out var externalVersions))
{
matchesExternalDependency = externalVersions.Contains(dependency.Value.Version);
}
if (!matchesExternalDependency)
if (!dependencyMap.TryGetValue(dependency.Key, out var externalVersions)
|| !externalVersions.Contains(dependency.Value.Version))
{
Log.LogKoreBuildError(
project.FullPath,
@ -168,15 +139,7 @@ namespace RepoTasks
if (!solution.ShouldBuild)
{
if (!shippedPackageMap.TryGetValue(project.PackageId, out _))
{
Log.LogMessage(MessageImportance.Normal, $"Detected inconsistent in a sample or test project {project.FullPath}");
continue;
}
else
{
reposThatShouldPatch.Add(Path.GetFileName(Path.GetDirectoryName(solution.FullPath)));
}
reposThatShouldPatch.Add(Path.GetFileName(Path.GetDirectoryName(solution.FullPath)));
}
inconsistentVersions.Add(new VersionMismatch