Trim common manifest

This commit is contained in:
= 2017-12-12 01:27:57 -08:00 committed by Nate McMaster
parent 997e31805b
commit 4ed1ade289
2 changed files with 43 additions and 34 deletions

View File

@ -207,6 +207,7 @@
<!-- Trim packages guaranteed to be in the runtime but isn't included in our runtime store -->
<ItemGroup>
<PackagesToTrim Include="runtime.win-arm64.runtime.native.system.data.sqlclient.sni" />
<ExistingStoreManifests Include="$(_ExistingManifestsDirectory)*.xml" />
</ItemGroup>
<MSBuild Projects="$(_WorkRoot)RS.Manifest\RS.Manifest.csproj"
@ -216,6 +217,12 @@
</MSBuild>
<RepoTasks.CreateCommonManifest DestinationFilePath="$(ArtifactsDir)$(CommonManifestFileName)" PackageDefinitions="@(_PackageDefinitions)" Packages="@(PackagesToTrim)"/>
<!-- Trim built manifest with existing manifests -->
<RepoTasks.ComposeNewStore
ExistingManifests="@(ExistingStoreManifests)"
NewManifests="$(ArtifactsDir)$(CommonManifestFileName)"
ManifestDestination="$(ArtifactsDir)$(CommonManifestFileName)"/>
</Target>
<Target Name="AddManifestsToMetapackage">

View File

@ -17,19 +17,15 @@ namespace RepoTasks
[Required]
public ITaskItem[] NewManifests { get; set; }
[Required]
public ITaskItem[] RuntimeStoreFiles { get; set; }
[Required]
public ITaskItem[] RuntimeStoreSymbolFiles { get; set; }
[Required]
public string ManifestDestination { get; set; }
[Required]
public string StoreDestination { get; set; }
[Required]
public string SymbolsDestination { get; set; }
public override bool Execute()
@ -58,45 +54,51 @@ namespace RepoTasks
}
}
// Insert new runtime store files
foreach (var storeFile in RuntimeStoreFiles)
if (RuntimeStoreFiles != null)
{
// format: {bitness}}/{tfm}}/{id}/{version}}/...
var recursiveDir = storeFile.GetMetadata("RecursiveDir");
var components = recursiveDir.Split(Path.DirectorySeparatorChar);
var id = components[2];
var version = components[3];
if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
// Insert new runtime store files
foreach (var storeFile in RuntimeStoreFiles)
{
var destinationDir = Path.Combine(StoreDestination, recursiveDir);
if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir)))
{
Directory.CreateDirectory(destinationDir);
}
// format: {bitness}}/{tfm}}/{id}/{version}}/...
var recursiveDir = storeFile.GetMetadata("RecursiveDir");
var components = recursiveDir.Split(Path.DirectorySeparatorChar);
var id = components[2];
var version = components[3];
File.Copy(storeFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{storeFile.GetMetadata("Filename")}{storeFile.GetMetadata("Extension")}"), overwrite: true);
if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
{
var destinationDir = Path.Combine(StoreDestination, recursiveDir);
if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir)))
{
Directory.CreateDirectory(destinationDir);
}
File.Copy(storeFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{storeFile.GetMetadata("Filename")}{storeFile.GetMetadata("Extension")}"), overwrite: true);
}
}
}
// Insert new runtime store files
foreach (var symbolFile in RuntimeStoreSymbolFiles)
if (RuntimeStoreSymbolFiles != null)
{
// format: {bitness}}/{tfm}}/{id}/{version}}/...
var recursiveDir = symbolFile.GetMetadata("RecursiveDir");
var components = recursiveDir.Split(Path.DirectorySeparatorChar);
var id = components[2];
var version = components[3];
if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
// Insert new runtime store symbol files
foreach (var symbolFile in RuntimeStoreSymbolFiles)
{
var destinationDir = Path.Combine(SymbolsDestination, recursiveDir);
if (!Directory.Exists(Path.Combine(SymbolsDestination, recursiveDir)))
{
Directory.CreateDirectory(destinationDir);
}
// format: {bitness}}/{tfm}}/{id}/{version}}/...
var recursiveDir = symbolFile.GetMetadata("RecursiveDir");
var components = recursiveDir.Split(Path.DirectorySeparatorChar);
var id = components[2];
var version = components[3];
File.Copy(symbolFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{symbolFile.GetMetadata("Filename")}{symbolFile.GetMetadata("Extension")}"), overwrite: true);
if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
{
var destinationDir = Path.Combine(SymbolsDestination, recursiveDir);
if (!Directory.Exists(Path.Combine(SymbolsDestination, recursiveDir)))
{
Directory.CreateDirectory(destinationDir);
}
File.Copy(symbolFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{symbolFile.GetMetadata("Filename")}{symbolFile.GetMetadata("Extension")}"), overwrite: true);
}
}
}