Merge pull request #4656 from livarcocc/improve_lzma_build

Changing the lzma generation
This commit is contained in:
Livar 2016-11-09 11:38:59 -08:00 committed by GitHub
commit 5f3885cff4
3 changed files with 64 additions and 18 deletions

View file

@ -19,7 +19,7 @@
SetupStage; SetupStage;
CompileStage; CompileStage;
BuildProjectsForNuGetPackages; BuildProjectsForNuGetPackages;
GenerateNuGetPackagesArchive" /> GetNuGetPackagesArchive" />
<Target Name="SetupStage" <Target Name="SetupStage"
DependsOnTargets="Prepare"> DependsOnTargets="Prepare">

View file

@ -1,9 +1,56 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="GetNuGetPackagesArchive"
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs;
DownloadNuGetPackagesArchive;
GenerateNuGetPackagesArchive;
UploadNuGetPackagesArchiveToAzure"
Inputs="$(IntermediateArchive)"
Outputs="$(FinalArchive)">
<Copy SourceFiles="$(IntermediateArchive)" DestinationFiles="$(FinalArchive)" />
</Target>
<Target Name="UploadNuGetPackagesArchiveToAzure"
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs;
SetupAzureBlobInformation;
GenerateNuGetPackagesArchive"
Condition=" 'UploadNuGetPackagesArchiveToAzure' == 'true' And '$(PUBLISH_TO_AZURE_BLOB)' != '' ">
<ItemGroup>
<NuGetPackagesArchiveToUpload Include="$(IntermediateArchive)" />
</ItemGroup>
<ItemGroup>
<NuGetPackagesArchiveToUpload>
<RelativeBlobPath>$(CoreSetupChannel)/Binaries/$(SharedFrameworkVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
</NuGetPackagesArchiveToUpload>
</ItemGroup>
<UploadToAzure
AccountKey="$(ArtifactCloudDropAccessToken)"
AccountName="$(ArtifactCloudDropAccountName)"
ContainerName="$(ArtifactContainerName)"
Items="@(NuGetPackagesArchiveToUpload)"
Overwrite="false"
ContinueOnError="WarnAndContinue" />
</Target>
<Target Name="DownloadNuGetPackagesArchive"
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs"
Inputs="$(IntermediateArchive)"
Outputs="$(IntermediateArchive)">
<DownloadFile Uri="$(NugetPackagesArchiveBlobUrl)"
DestinationPath="$(IntermediateArchive)"
ContinueOnError="WarnAndContinue" />
</Target>
<Target Name="GenerateNuGetPackagesArchive" <Target Name="GenerateNuGetPackagesArchive"
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs" DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs"
Inputs="@(GenerateNuGetPackagesArchiveInputs)" Inputs="$(IntermediateArchive)"
Outputs="$(FinalArchive)"> Outputs="$(IntermediateArchive)">
<PropertyGroup>
<UploadNuGetPackagesArchiveToAzure>true</UploadNuGetPackagesArchiveToAzure>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<FilesToClean Include="$(NuGetPackagesArchiveProject)/**/*" /> <FilesToClean Include="$(NuGetPackagesArchiveProject)/**/*" />
<FilesToClean Include="$(NuGetPackagesArchiveFolder)/**/*" /> <FilesToClean Include="$(NuGetPackagesArchiveFolder)/**/*" />
@ -31,28 +78,18 @@
Configuration="$(Configuration)" /> Configuration="$(Configuration)" />
<Exec Command="$(DotnetStage0) $(ArchiverDll) -a $(IntermediateArchive) $(NuGetPackagesArchiveFolder)" /> <Exec Command="$(DotnetStage0) $(ArchiverDll) -a $(IntermediateArchive) $(NuGetPackagesArchiveFolder)" />
<Copy SourceFiles="$(IntermediateArchive)" DestinationFiles="$(FinalArchive)" />
</Target> </Target>
<Target Name="SetupNuGetPackagesArchiveInputsOutputs" <Target Name="SetupNuGetPackagesArchiveInputsOutputs"
DependsOnTargets="Prepare;SetupStage"> DependsOnTargets="Prepare;SetupStage">
<PropertyGroup> <PropertyGroup>
<NugetPackagesArchiveName>nuGetPackagesArchive.$(SharedFrameworkVersion).lzma</NugetPackagesArchiveName>
<NuGetPackagesArchiveProject>$(IntermediateDirectory)/NuGetPackagesArchiveProject</NuGetPackagesArchiveProject> <NuGetPackagesArchiveProject>$(IntermediateDirectory)/NuGetPackagesArchiveProject</NuGetPackagesArchiveProject>
<NuGetPackagesArchiveFolder>$(IntermediateDirectory)/NuGetPackagesArchiveFolder</NuGetPackagesArchiveFolder> <NuGetPackagesArchiveFolder>$(IntermediateDirectory)/NuGetPackagesArchiveFolder</NuGetPackagesArchiveFolder>
<ArchiverDll>$(ToolsOutputDirectory)/Archiver.dll</ArchiverDll> <ArchiverDll>$(ToolsOutputDirectory)/Archiver.dll</ArchiverDll>
<IntermediateArchive>$(IntermediateDirectory)/nuGetPackagesArchive.lzma</IntermediateArchive> <IntermediateArchive>$(IntermediateDirectory)/$(NugetPackagesArchiveName)</IntermediateArchive>
<FinalArchive>$(Stage2Directory)/sdk/$(SdkVersion)/nuGetPackagesArchive.lzma</FinalArchive> <FinalArchive>$(Stage2Directory)/sdk/$(SdkVersion)/nuGetPackagesArchive.lzma</FinalArchive>
<NugetPackagesArchiveBlobUrl>$(SharedFrameworkArchiveBlobRootUrl)/$(NugetPackagesArchiveName)</NugetPackagesArchiveBlobUrl>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<GenerateNuGetPackagesArchiveInputs Include="$(_DotNetNewFolder)/CSharp_Console/**/*" />
<GenerateNuGetPackagesArchiveInputs Include="$(SrcDirectory)/dotnet-archive/**/*"
Exclude="$(SrcDirectory)/dotnet-archive/**/bin/**/*;
$(SrcDirectory)/dotnet-archive/**/obj/**/*" />
<GenerateNuGetPackagesArchiveInputs Include="$(SrcDirectory)/Microsoft.DotNet.Archive/**/*"
Exclude="$(SrcDirectory)/Microsoft.DotNet.Archive/**/bin/**/*;
$(SrcDirectory)/Microsoft.DotNet.Archive/**/obj/**/*" />
</ItemGroup>
</Target> </Target>
</Project> </Project>

View file

@ -1,6 +1,7 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved. // Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information. // Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using Microsoft.Build.Framework; using Microsoft.Build.Framework;
@ -33,9 +34,17 @@ namespace Microsoft.DotNet.Cli.Build
{ {
var getTask = httpClient.GetStreamAsync(Uri); var getTask = httpClient.GetStreamAsync(Uri);
using (var outStream = File.Create(DestinationPath)) try
{ {
getTask.Result.CopyTo(outStream); using (var outStream = File.Create(DestinationPath))
{
getTask.Result.CopyTo(outStream);
}
}
catch (Exception)
{
File.Delete(DestinationPath);
throw;
} }
} }