Enabling the publish of assets to 'orchestrated' blob storage.

This commit is contained in:
jbeisner 2018-01-12 22:11:15 +00:00
parent a85a4f4547
commit bfb9322415
5 changed files with 51 additions and 17 deletions

View file

@ -1,27 +1,36 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Product>Sdk</Product>
<IsOrchestratedPublish Condition="'$(PB_PublishBlobFeedUrl)' != ''">True</IsOrchestratedPublish>
<BlobStoragePartialRelativePath>Sdk</BlobStoragePartialRelativePath>
<!-- Values related to the download of assets from blob storage -->
<DefaultCoreSetupBlobRootUrl>https://dotnetcli.azureedge.net/dotnet/</DefaultCoreSetupBlobRootUrl>
<CoreSetupBlobRootUrl Condition="'$(PB_AssetRootUrl)' != ''">$(PB_AssetRootUrl)</CoreSetupBlobRootUrl>
<CoreSetupBlobRootUrl>$(PB_AssetRootUrl)</CoreSetupBlobRootUrl>
<CoreSetupBlobRootUrl Condition="'$(CoreSetupBlobRootUrl)' == ''">$(DefaultCoreSetupBlobRootUrl)</CoreSetupBlobRootUrl>
<BackwardsCompatibilityCoreSetupBlobRootUrl>$(DefaultCoreSetupBlobRootUrl)</BackwardsCompatibilityCoreSetupBlobRootUrl>
<CoreSetupBlobAccessToken Condition="'$(PB_AssetRootAccessTokenSuffix)' != ''">$(PB_AssetRootAccessTokenSuffix)</CoreSetupBlobAccessToken>
<CoreSetupBlobAccessTokenParam Condition=" '$(CoreSetupBlobAccessToken)' != '' ">?$(CoreSetupBlobAccessToken)</CoreSetupBlobAccessTokenParam>
<ArtifactContainerName>$(ARTIFACT_STORAGE_CONTAINER)</ArtifactContainerName>
<ArtifactContainerName Condition="'$(ArtifactContainerName)' == ''">dotnet</ArtifactContainerName>
<ArtifactCloudDropAccessToken>$(ARTIFACT_STORAGE_KEY)</ArtifactCloudDropAccessToken>
<!-- Values related to the upload of assets to blob storage -->
<ArtifactCloudDropAccountName>$(ARTIFACT_STORAGE_ACCOUNT)</ArtifactCloudDropAccountName>
<ArtifactCloudDropAccountName Condition="'$(ArtifactCloudDropAccountName)' == ''">dotnetcli</ArtifactCloudDropAccountName>
<DotnetBlobRootUrl>https://$(ArtifactCloudDropAccountName).blob.core.windows.net/$(ArtifactContainerName)</DotnetBlobRootUrl>
<ChecksumContainerName>$(CHECKSUM_STORAGE_CONTAINER)</ChecksumContainerName>
<ChecksumContainerName Condition="'$(ChecksumContainerName)' == ''">dotnet</ChecksumContainerName>
<ChecksumCloudDropAccessToken>$(CHECKSUM_STORAGE_KEY)</ChecksumCloudDropAccessToken>
<ArtifactContainerName>$(ARTIFACT_STORAGE_CONTAINER)</ArtifactContainerName>
<ArtifactContainerName Condition="'$(ArtifactContainerName)' == ''">dotnet</ArtifactContainerName>
<ArtifactCloudDropAccessToken>PB_PublishBlobFeedKey)</ArtifactCloudDropAccessToken>
<ArtifactCloudDropAccessToken Condition="'$(ArtifactCloudDropAccessToken)' == ''">$(ARTIFACT_STORAGE_KEY)</ArtifactCloudDropAccessToken>
<!-- Values related to the upload of checksums to blob storage -->
<ChecksumCloudDropAccountName>$(CHECKSUM_STORAGE_ACCOUNT)</ChecksumCloudDropAccountName>
<ChecksumCloudDropAccountName Condition="'$(ChecksumCloudDropAccountName)' == ''">dotnetclichecksums</ChecksumCloudDropAccountName>
<BlobFeedContainerName>$(BLOBFEED_STORAGE_CONTAINER)</BlobFeedContainerName>
<BlobFeedContainerName Condition="'$(BlobFeedContainerName)' == ''">dotnet-core</BlobFeedContainerName>
<BlobFeedExpectedURL>$(BLOBFEED_EXPECTED_URL)</BlobFeedExpectedURL>
<BlobFeedExpectedURL Condition="'$(BlobFeedExpectedURL)' == ''">https://dotnetfeed.blob.core.windows.net/$(BlobFeedContainerName)/index.json</BlobFeedExpectedURL>
<BlobFeedCloudDropAccessToken>$(BLOBFEED_STORAGE_KEY)</BlobFeedCloudDropAccessToken>
<ChecksumContainerName>$(CHECKSUM_STORAGE_CONTAINER)</ChecksumContainerName>
<ChecksumContainerName Condition="'$(ChecksumContainerName)' == ''">dotnet</ChecksumContainerName>
<ChecksumCloudDropAccessToken>PB_PublishBlobFeedKey)</ChecksumCloudDropAccessToken>
<ChecksumCloudDropAccessToken Condition="'$(ChecksumCloudDropAccessToken)' == ''">$(CHECKSUM_STORAGE_KEY)</ChecksumCloudDropAccessToken>
<!-- Values related to the upload of NuPkgs to the blob feed -->
<BlobFeedExpectedURL>$(PB_PublishBlobFeedUrl)</BlobFeedExpectedURL>
<BlobFeedExpectedURL Condition="'$(BlobFeedExpectedURL)' == ''">https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</BlobFeedExpectedURL>
<BlobFeedCloudDropAccessToken>PB_PublishBlobFeedKey)</BlobFeedCloudDropAccessToken>
<BlobFeedCloudDropAccessToken Condition="'$(BlobFeedCloudDropAccessToken)' == ''">$(BLOBFEED_STORAGE_KEY)</BlobFeedCloudDropAccessToken>
</PropertyGroup>
</Project>

View file

@ -4,6 +4,7 @@
<Import Project="$(MSBuildThisFileDirectory)/publish/PublishContent.targets" />
<Import Project="$(MSBuildThisFileDirectory)/publish/PublishNupkgToBlobFeed.targets" />
<Import Project="$(MSBuildThisFileDirectory)/publish/Badge.targets" />
<Import Project="$(MSBuildThisFileDirectory)/publish/AzureInfo.targets" />
<Import Project="$(MSBuildThisFileDirectory)/publish/Checksum.targets" />
<Import Project="$(MSBuildThisFileDirectory)/publish/RuntimeCoherence.targets" />
@ -12,6 +13,7 @@
Condition=" '$(PUBLISH_TO_AZURE_BLOB)' == 'true' "
DependsOnTargets="Init;
SetBadgeProps;
SetAzureProps;
Package;
EvaluateRuntimeCoherence;
PublishArtifacts;
@ -21,6 +23,7 @@
Condition=" '$(PUBLISH_TO_AZURE_BLOB)' == 'true' "
DependsOnTargets="Init;
SetBadgeProps;
SetAzureProps;
EvaluateRuntimeCoherence;
PublishArtifacts;
FinishBuild" />
@ -52,7 +55,7 @@
<ItemGroup>
<ForPublishing>
<RelativeBlobPath>$(Product)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
<RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
</ForPublishing>
</ItemGroup>
</Target>
@ -66,7 +69,7 @@
<ItemGroup>
<CliVersionBadgeToUpload>
<RelativeBlobPath>$(Product)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
<RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
</CliVersionBadgeToUpload>
</ItemGroup>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Condition="'$(GeneratePropsFile)' != 'true'" Project="$(NuGetPackagesDir)/microsoft.dotnet.build.tasks.feed/$(BuildTasksFeedToolVersion)/build/Microsoft.DotNet.Build.Tasks.Feed.targets" />
<Target Name="SetAzureProps"
Condition=" '$(IsOrchestratedPublish)' == 'True' And '$(PB_PublishBlobFeedUrl)' != '' ">
<ParseBlobUrl BlobUrl="$(PB_PublishBlobFeedUrl)">
<Output TaskParameter="BlobElements" ItemName="BlobElements" />
</ParseBlobUrl>
<PropertyGroup>
<ArtifactContainerName>%(BlobElements.ContainerName)</ArtifactContainerName>
<ChecksumContainerName>%(BlobElements.ContainerName)</ChecksumContainerName>
<ArtifactCloudDropAccountName>%(BlobElements.AccountName)</ArtifactCloudDropAccountName>
<ChecksumCloudDropAccountName>%(BlobElements.AccountName)</ChecksumCloudDropAccountName>
<BlobStoragePartialRelativePath>%(BlobElements.BlobPath)/assets</BlobStoragePartialRelativePath>
</PropertyGroup>
</Target>
</Project>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="FinishBuild"
Condition="'$(IsOrchestratedPublish)' != 'True'"
DependsOnTargets="CheckIfAllBuildsHavePublished;
FinalizeBuild" />

View file

@ -7,7 +7,7 @@
<NupkgsForPublishing Include="$(PackagesDirectory)/Microsoft.DotNet.MSBuildSdkResolver.*.nupkg" />
</ItemGroup>
<Target Name="PublishNupkgToBlobFeed" Condition=" '$(PUBLISH_NUPKG_TO_BLOB_FEED)' == 'true' AND '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " >
<Target Name="PublishNupkgToBlobFeed" Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " >
<Error Condition="'$(BlobFeedCloudDropAccessToken)' == ''" Text="Missing property BlobFeedCloudDropAccessToken." />
<Error Condition="'$(BlobFeedExpectedURL)' == ''" Text="Missing property BlobFeedExpectedURL." />