dotnet-installer/build/publish/PublishContent.targets
John Beisner 47da513313
Infrastructure updates: CLI:master -> release/2.1.3xx (#8541)
* Repairing the first pass call to 'dotnet msbuild'; CLI:master (#8488)

* '$ExtraParametersNoTargets', which is used on the first pass call to 'dotnet msbuild', currently is of type 'string' not 'List'1' as is '$ExtraParameters'. This results in the non-honoring of any parameter other than parameter one. Solution: Make a copy of '$ExtraParameters' to '$ExtraParametersNoTargets' of type 'List'1' and remove the targets from the list.

* Swallow the boolean output from '$ExtraParametersNoTargets.Remove'

* Specifically capture "/t:" or "/target:" only.

* The "${arg,,}" syntax works well on dev and Jenkins OSX machines but does not work correctly on VSO build machines [likely a lower version of bash on VSO machines]. Therefore, using 'awk' to transforming to lower case. (#8497)

* Orchestrated final publish; CLI:master (#8504)

* Orchestrated final publish: https://github.com/dotnet/core-eng/issues/2407

* Changes per code review...

* The orchestrated "PackageVersion" type variables should not be used in any of the 'proj' files of the built build tools under: "build_projects"
2018-02-05 15:50:50 -08:00

61 lines
3.2 KiB
XML

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OverwriteOnPublish Condition="'$(OverwriteOnPublish)' == ''">false</OverwriteOnPublish>
</PropertyGroup>
<!-- gathers the items to be published -->
<Target Name="GatherItemsForPattern">
<Error Condition="'$(PublishPattern)' == ''" Text="Please specify a value for PublishPattern using standard msbuild 'include' syntax." />
<ItemGroup>
<ForPublishing Include="$(PublishPattern)" />
</ItemGroup>
<!-- add relative blob path metadata -->
<ItemGroup>
<ForPublishing>
<RelativeBlobPath>$([System.String]::Copy('%(RecursiveDir)%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
</ForPublishing>
</ItemGroup>
<Error Condition="'@(ForPublishing)' == ''" Text="No items were found matching pattern '$(PublishPattern)'." />
</Target>
<!-- publishes artifacts to blob storage in Azure -->
<Target Name="UploadArtifactsToAzure" DependsOnTargets="GatherItemsForPattern">
<Error Condition="'$(ArtifactCloudDropAccessToken)' == ''" Text="Missing property ArtifactCloudDropAccessToken." />
<Error Condition="'$(ArtifactCloudDropURL)' == ''" Text="Missing property ArtifactCloudDropURL." />
<Message Text="Publish assets to blob storage started: $(ArtifactCloudDropURL)" />
<PushToBlobFeed ExpectedFeedUrl="$(ArtifactCloudDropURL)"
AccountKey="$(ArtifactCloudDropAccessToken)"
ItemsToPush="@(ForPublishing)"
ManifestBranch="$(BranchName)"
ManifestBuildId="$(FullNugetVersion)"
ManifestCommit="$(CommitHash)"
ManifestName="$(BuildName)"
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
Overwrite="$(OverwriteOnPublish)"
PublishFlatContainer="true"
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
</Target>
<!-- publishes checksums for the artifacts to blob storage in Azure -->
<Target Name="UploadChecksumsToAzure" DependsOnTargets="GenerateChecksums">
<Error Condition="'$(ChecksumCloudDropAccessToken)' == ''" Text="Missing property ChecksumCloudDropAccessToken." />
<Error Condition="'$(ChecksumCloudDropURL)' == ''" Text="Missing property ChecksumCloudDropURL." />
<Message Text="Publish checksums to blob storage started: $(ChecksumCloudDropURL)" />
<PushToBlobFeed ExpectedFeedUrl="$(ChecksumCloudDropURL)"
AccountKey="$(ChecksumCloudDropAccessToken)"
ItemsToPush="@(ArtifactsForGeneratingChecksums->'%(DestinationPath)')"
ManifestBranch="$(BranchName)"
ManifestBuildId="$(FullNugetVersion)"
ManifestCommit="$(CommitHash)"
ManifestName="$(BuildName)"
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
Overwrite="$(OverwriteOnPublish)"
PublishFlatContainer="true"
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
</Target>
</Project>