Update publish step to support pushing all assets to the transport feed

This commit is contained in:
Nate McMaster 2018-01-09 08:49:28 -08:00
parent 6358e0d3ef
commit 91b852136b
2 changed files with 53 additions and 5 deletions

View File

@ -2,15 +2,30 @@
<PropertyGroup> <PropertyGroup>
<DependencyAssetsDir>$(RepositoryRoot).deps\assets\</DependencyAssetsDir> <DependencyAssetsDir>$(RepositoryRoot).deps\assets\</DependencyAssetsDir>
<DependencyPackagesDir>$(RepositoryRoot).deps\packages\</DependencyPackagesDir>
<!-- This file is used by the dotnet/cli to determine if our shared framework aligns with the version they pull. --> <!-- This file is used by the dotnet/cli to determine if our shared framework aligns with the version they pull. -->
<BaseRuntimeVersionFileName>aspnetcore_base_runtime.version</BaseRuntimeVersionFileName> <BaseRuntimeVersionFileName>aspnetcore_base_runtime.version</BaseRuntimeVersionFileName>
<BaseRuntimeVersionFile>$(IntermediateDir)$(BaseRuntimeVersionFileName)</BaseRuntimeVersionFile> <BaseRuntimeVersionFile>$(IntermediateDir)$(BaseRuntimeVersionFileName)</BaseRuntimeVersionFile>
<LatestRuntimeVersionFileName>latest.aspnetcore.version</LatestRuntimeVersionFileName> <LatestRuntimeVersionFileName>latest.aspnetcore.version</LatestRuntimeVersionFileName>
<LatestRuntimeVersionFile>$(IntermediateDir)$(LatestRuntimeVersionFileName)</LatestRuntimeVersionFile> <LatestRuntimeVersionFile>$(IntermediateDir)$(LatestRuntimeVersionFileName)</LatestRuntimeVersionFile>
<PublishDependsOn>
PrepareOutputPaths;
GetFilesToPublish;
CopyToPublishArtifacts;
PublishToAzureFeed;
PublisthToTransportFeed;
$(PublishDependsOn);
</PublishDependsOn>
<!-- Settings for pushing to the transport feed -->
<PushToBlobFeed_Overwrite Condition="'$(PushToBlobFeed_Overwrite)' == ''">false</PushToBlobFeed_Overwrite>
<PushToBlobFeed_MaxClients Condition="'$(PushToBlobFeed_MaxClients)' == ''">8</PushToBlobFeed_MaxClients>
<BlobFileRelativePathBase Condition="'$(BlobFileRelativePathBase)' == ''">assets</BlobFileRelativePathBase>
<BlobFileRelativePathBase Condition="!HasTrailingSlash('$(BlobFileRelativePathBase)')">$(BlobFileRelativePathBase)/</BlobFileRelativePathBase>
</PropertyGroup> </PropertyGroup>
<Target Name="Publish" <Target Name="Publish" DependsOnTargets="$(PublishDependsOn)" />
DependsOnTargets="PrepareOutputPaths;GetFilesToPublish;CopyToPublishArtifacts;PublishToAzureFeed;" />
<Target Name="GeneratePublishFiles" DependsOnTargets="ResolveCommitHash"> <Target Name="GeneratePublishFiles" DependsOnTargets="ResolveCommitHash">
<MakeDir Directories="$(IntermediateDir)" /> <MakeDir Directories="$(IntermediateDir)" />
@ -95,10 +110,12 @@
<ContentType>text/plain</ContentType> <ContentType>text/plain</ContentType>
<Overwrite>true</Overwrite> <Overwrite>true</Overwrite>
</FilesToPublish> </FilesToPublish>
<PackagesToPublish Include="$(DependencyPackagesDir)*.nupkg" Exclude="$(DependencyPackagesDir)*.symbols.nupkg" />
<PackagesToPublish Include="$(DependencyPackagesDir)*.symbols.nupkg" Exclude="@(PackagesToPublish)" IsSymbolsPackage="true" />
</ItemGroup> </ItemGroup>
<Message Text="Publish @(FilesToPublish -> Count()) file(s)" Importance="High" /> <Message Text="@(FilesToPublish -> '%(FullPath) -> %(RelativeBlobPath)','%0A')" />
<Message Text="@(FilesToPublish -> '%(FullPath) -> %(RelativeBlobPath)','%0A')" Importance="High" />
</Target> </Target>
<Target Name="_CheckFilesToPublish"> <Target Name="_CheckFilesToPublish">
@ -110,7 +127,8 @@
</Target> </Target>
<Target Name="CopyToPublishArtifacts" DependsOnTargets="_CheckFilesToPublish"> <Target Name="CopyToPublishArtifacts" DependsOnTargets="_CheckFilesToPublish">
<Copy SourceFiles="@(FilesToPublish)" DestinationFolder="$(ArtifactsDir)" /> <MakeDir Directories="$(ArtifactsDir)files\" />
<Copy SourceFiles="@(FilesToPublish)" DestinationFolder="$(ArtifactsDir)files\" />
</Target> </Target>
<Target Name="PublishToAzureFeed" <Target Name="PublishToAzureFeed"
@ -136,4 +154,31 @@
Files="@(FilesToPublish)" /> Files="@(FilesToPublish)" />
</Target> </Target>
<Target Name="PublishToTransportFeed"
DependsOnTargets="GetFilesToPublish;_CheckFilesToPublish"
Condition="'$(PublishToTransportFeed)' == 'true'">
<ItemGroup>
<PackagesToPublishToTransport Include="@(PackagesToPublish)" Condition=" '%(PackagesToPublish.IsSymbolsPackage)' != 'true' " />
<FilesToPublishToTransport Include="@(FilesToPublish)" RelativeBlobPath="$(BlobFileRelativePathBase)%(FilesToPublish.RelativeBlobPath)" />
</ItemGroup>
<Message Text="Publishing %(PackagesToPublishToTransport.FullPath)" Importance="high" />
<Message Text="@(FilesToPublishToTransport -> '%(FullPath) -> %(RelativeBlobPath)','%0A')" Importance="high" />
<PushToBlobFeed ExpectedFeedUrl="$(PublishBlobFeedUrl)"
AccountKey="$(PublishBlobFeedKey)"
ItemsToPush="@(PackagesToPublishToTransport)"
Overwrite="$(PushToBlobFeed_Overwrite)"
MaxClients="$(PushToBlobFeed_MaxClients)"
Condition="@(PackagesToPublish->Count()) != 0" />
<PushToBlobFeed ExpectedFeedUrl="$(PublishBlobFeedUrl)"
AccountKey="$(PublishBlobFeedKey)"
ItemsToPush="@(FilesToPublishToTransport)"
PublishFlatContainer="true"
Overwrite="$(PushToBlobFeed_Overwrite)"
MaxClients="$(PushToBlobFeed_MaxClients)" />
</Target>
</Project> </Project>

View File

@ -50,7 +50,10 @@
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<!-- azure = non-orchestrated builds -->
<PublishToAzureFeed Condition="$(PublishType.Contains('azure'))">true</PublishToAzureFeed> <PublishToAzureFeed Condition="$(PublishType.Contains('azure'))">true</PublishToAzureFeed>
<!-- blob = orchestrated builds -->
<PublishToTransportFeed Condition="$(PublishType.Contains('blob'))">true</PublishToTransportFeed>
</PropertyGroup> </PropertyGroup>
<Import Project="external-dependencies.props" /> <Import Project="external-dependencies.props" />