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

View File

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