<?xml version="1.0" encoding="utf-8"?> <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the MIT license. See License.txt in the project root for full license information. --> <Project> <Import Project="$(RepoRoot)\src\redist\targets\Versions.targets" /> <PropertyGroup> <Product>Sdk</Product> <BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath> <BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(Product)</BlobStoragePartialRelativePath> <PublishToBlobFeedFlatContainer>true</PublishToBlobFeedFlatContainer> <ChecksumsFeedUrl>$(DotnetPublishChecksumsBlobFeedUrl)</ChecksumsFeedUrl> <ChecksumsAccountKey>$(DotNetPublishChecksumsBlobFeedKey)</ChecksumsAccountKey> <SdkAssetsFeedUrl>$(DotnetPublishSdkAssetsBlobFeedUrl)</SdkAssetsFeedUrl> <SdkAssetsAzureAccountKey>$(DotNetPublishSdkAssetsBlobFeedKey)</SdkAssetsAzureAccountKey> <PublishSdkAssetsAndChecksumsToBlob>false</PublishSdkAssetsAndChecksumsToBlob> <PublishSdkAssetsAndChecksumsToBlob Condition=" '$(ChecksumsFeedUrl)' != '' and '$(SdkAssetsFeedUrl)' != '' ">true</PublishSdkAssetsAndChecksumsToBlob> <PublishBinariesAndBadge Condition=" '$(PublishBinariesAndBadge)' == '' ">true</PublishBinariesAndBadge> </PropertyGroup> <Import Project="$(NuGetPackageRoot)microsoft.dotnet.build.tasks.feed\$(MicrosoftDotNetBuildTasksFeedVersion)\build\Microsoft.DotNet.Build.Tasks.Feed.targets" Condition=" '$(PublishSdkAssetsAndChecksumsToBlob)' == 'true' " /> <PropertyGroup> <!-- Because we may be building in a container, we should use an asset manifest file path that exists in the container. Disambiguate the manifests via available properties. AGENT_OS and AGENT_JOBNAME are present on Azure DevOps agents --> <AssetManifestFileName Condition="'$(AGENT_OS)' != ''">$(AGENT_OS)</AssetManifestFileName> <AssetManifestFileName Condition="'$(AGENT_OS)' == ''">$(OS)</AssetManifestFileName> <AssetManifestFileName Condition="'$(AGENT_JOBNAME)' != ''">$(AssetManifestFileName)-$(AGENT_JOBNAME)</AssetManifestFileName> <AssetManifestFileName Condition="'$(AGENT_JOBNAME)' == '' and '$(Architecture)' != ''">$(AssetManifestFileName)-$(Architecture)</AssetManifestFileName> <ChecksumsAssetManifestFileName>$(AssetManifestFileName)-checksums</ChecksumsAssetManifestFileName> <!-- Property AssetManifestFilePath will be reassigned by the Arcade SDK, so use a different name (DotNetAssetManifestFilePath) --> <DotNetAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName).xml</DotNetAssetManifestFilePath> <ChecksumsAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(ChecksumsAssetManifestFileName).xml</ChecksumsAssetManifestFilePath> </PropertyGroup> <ItemGroup> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.zip" Condition=" '$(PublishBinariesAndBadge)' == 'true' " /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.tar.gz" Condition=" '$(PublishBinariesAndBadge)' == 'true' " /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.pkg" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.exe" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.deb" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.rpm" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.msi" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.svg" Condition=" '$(PublishBinariesAndBadge)' == 'true' "> <ExcludeFromManifest>true</ExcludeFromManifest> </SdkAssetsToPublish> <SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" /> <CheckSumsToPublish Include="$(ArtifactsShippingPackagesDir)*.sha" /> <CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.zip.sha" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/> <CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.tar.gz.sha" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/> </ItemGroup> <Target Name="PublishSdkAssetsAndChecksums" BeforeTargets="Publish" DependsOnTargets="SetSdkVersionInfo" Condition=" '$(PublishSdkAssetsAndChecksumsToBlob)' == 'true' "> <ItemGroup> <SdkAssetsToPushToBlobFeed Include="@(SdkAssetsToPublish)" IsShipping="true" > <RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(SdkVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath> </SdkAssetsToPushToBlobFeed> <SdkAssetsToPushToBlobFeed Include="@(SdkNonShippingAssetsToPublish)" IsShipping="false" > <RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(SdkVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath> </SdkAssetsToPushToBlobFeed> <ChecksumsToPushToBlobFeed Include="@(CheckSumsToPublish)" IsShipping="true" > <RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(SdkVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath> </ChecksumsToPushToBlobFeed> </ItemGroup> <PushToBlobFeed ExpectedFeedUrl="$(SdkAssetsFeedUrl)" AccountKey="$(SdkAssetsAzureAccountKey)" ItemsToPush="@(SdkAssetsToPushToBlobFeed)" ManifestBuildData="Location=$(SdkAssetsFeedUrl)" ManifestRepoUri="$(BUILD_REPOSITORY_URI)" ManifestBranch="$(BUILD_SOURCEBRANCH)" ManifestBuildId="$(BUILD_BUILDNUMBER)" ManifestCommit="$(BUILD_SOURCEVERSION)" AssetManifestPath="$(DotNetAssetManifestFilePath)" PublishFlatContainer="true" /> <PushToBlobFeed ExpectedFeedUrl="$(ChecksumsFeedUrl)" AccountKey="$(ChecksumsAccountKey)" ItemsToPush="@(ChecksumsToPushToBlobFeed)" ManifestBuildData="Location=$(ChecksumsFeedUrl)" ManifestRepoUri="$(BUILD_REPOSITORY_URI)" ManifestBranch="$(BUILD_SOURCEBRANCH)" ManifestBuildId="$(BUILD_BUILDNUMBER)" ManifestCommit="$(BUILD_SOURCEVERSION)" AssetManifestPath="$(ChecksumsAssetManifestFilePath)" PublishFlatContainer="true"/> </Target> </Project>