commit
ebddd9c79a
|
|
@ -3,6 +3,7 @@
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.*proj": "xml",
|
"*.*proj": "xml",
|
||||||
"*.props": "xml",
|
"*.props": "xml",
|
||||||
"*.targets": "xml"
|
"*.targets": "xml",
|
||||||
|
"*.tasks": "xml"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -55,19 +55,14 @@
|
||||||
<RepoTasks.JoinItems
|
<RepoTasks.JoinItems
|
||||||
Left="@(ArtifactInfo)" LeftKey="PackageId" LeftMetadata="*" LeftItemSpec="PackageId"
|
Left="@(ArtifactInfo)" LeftKey="PackageId" LeftMetadata="*" LeftItemSpec="PackageId"
|
||||||
Right="@(PackageArtifact->WithMetadataValue('LZMA', 'true')->WithMetadataValue('PackageType', 'DotnetTool'))">
|
Right="@(PackageArtifact->WithMetadataValue('LZMA', 'true')->WithMetadataValue('PackageType', 'DotnetTool'))">
|
||||||
<Output TaskParameter="JoinResult" ItemName="_DotnetToolPackages" />
|
<Output TaskParameter="JoinResult" ItemName="_DotnetToolPackageId" />
|
||||||
</RepoTasks.JoinItems>
|
</RepoTasks.JoinItems>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<_DotnetToolPackages Update="@(_DotnetToolPackages)">
|
<_DotnetToolPackages Include="$(MetapackageRestoreSource)%(_DotnetToolPackageId.Identity).%(_DotnetToolPackageId.Version).nupkg" />
|
||||||
<DestFileName>$([System.String]::new('%(PackageId).%(Version)').ToLowerInvariant())</DestFileName>
|
|
||||||
<DestDirName>$([System.String]::new('%(PackageId)/%(Version)').ToLowerInvariant())</DestDirName>
|
|
||||||
</_DotnetToolPackages>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!-- No need to extract global CLI tool packages. They are extracted from the CliFallbackFolder into $HOME/.dotnet/tools by dotnet-install-tool. -->
|
<RepoTasks.CreateNuGetV3FolderFeed Packages="@(_DotnetToolPackages)" DestinationFolder="$(FallbackStagingDir)" Overwrite="true" />
|
||||||
<MakeDir Directories="$(FallbackStagingDir)\%(_DotnetToolPackages.DestDirName)\" Condition="'%(Identity)'!= ''" />
|
|
||||||
<Copy SourceFiles="$(MetapackageRestoreSource)%(_DotnetToolPackages.Identity).%(Version).nupkg" DestinationFiles="$(FallbackStagingDir)\%(DestDirName)\%(DestFileName).nupkg" Condition="'%(Identity)'!= ''" />
|
|
||||||
|
|
||||||
<!-- Create the archive -->
|
<!-- Create the archive -->
|
||||||
<Exec Command="$(ArchiverPath) -a $(FallbackOutputPath) $(FallbackStagingDir)" />
|
<Exec Command="$(ArchiverPath) -a $(FallbackOutputPath) $(FallbackStagingDir)" />
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
<LatestRuntimeVersionFile>$(IntermediateDir)$(LatestRuntimeVersionFileName)</LatestRuntimeVersionFile>
|
<LatestRuntimeVersionFile>$(IntermediateDir)$(LatestRuntimeVersionFileName)</LatestRuntimeVersionFile>
|
||||||
|
|
||||||
<PublishDependsOn>
|
<PublishDependsOn>
|
||||||
|
ResolveCommitHash;
|
||||||
PrepareOutputPaths;
|
PrepareOutputPaths;
|
||||||
GetFilesToPublish;
|
GetFilesToPublish;
|
||||||
CopyToPublishArtifacts;
|
CopyToPublishArtifacts;
|
||||||
|
|
@ -178,11 +179,11 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackagesToPublishToTransport
|
<PackagesToPublishToTransport
|
||||||
Include="%(PackagesToPublish.PackagePath)"
|
Include="%(PackagesToPublish.ArtifactPath)"
|
||||||
Condition="'%(PackageToPublish.Category)' == 'ship'" />
|
Condition="'%(PackageToPublish.Category)' == 'ship'" />
|
||||||
|
|
||||||
<PackagesToPublishToTransport
|
<PackagesToPublishToTransport
|
||||||
Include="%(PackagesToPublish.PackagePath)"
|
Include="%(PackagesToPublish.ArtifactPath)"
|
||||||
ManifestArtifactData="NonShipping=true"
|
ManifestArtifactData="NonShipping=true"
|
||||||
Condition="'%(PackageToPublish.Category)' != 'ship'" />
|
Condition="'%(PackageToPublish.Category)' != 'ship'" />
|
||||||
|
|
||||||
|
|
@ -200,7 +201,8 @@
|
||||||
AccountKey="$(PublishBlobFeedKey)"
|
AccountKey="$(PublishBlobFeedKey)"
|
||||||
ItemsToPush="@(PackagesToPublishToTransport)"
|
ItemsToPush="@(PackagesToPublishToTransport)"
|
||||||
Overwrite="$(PushToBlobFeed_Overwrite)"
|
Overwrite="$(PushToBlobFeed_Overwrite)"
|
||||||
ManifestBuildId="$(BuildNumber)"
|
ManifestBuildId="$(Version)"
|
||||||
|
ManifestBuildData="ProductVersion=$(PackageVersion);UniverseCommitHash=$(CommitHash)"
|
||||||
ManifestCommit="$(CommitHash)"
|
ManifestCommit="$(CommitHash)"
|
||||||
ManifestName="aspnet"
|
ManifestName="aspnet"
|
||||||
MaxClients="$(PushToBlobFeed_MaxClients)"
|
MaxClients="$(PushToBlobFeed_MaxClients)"
|
||||||
|
|
@ -211,7 +213,8 @@
|
||||||
ItemsToPush="@(FilesToPublishToTransport)"
|
ItemsToPush="@(FilesToPublishToTransport)"
|
||||||
PublishFlatContainer="true"
|
PublishFlatContainer="true"
|
||||||
Overwrite="$(PushToBlobFeed_Overwrite)"
|
Overwrite="$(PushToBlobFeed_Overwrite)"
|
||||||
ManifestBuildId="$(BuildNumber)"
|
ManifestBuildId="$(Version)"
|
||||||
|
ManifestBuildData="ProductVersion=$(PackageVersion);UniverseCommitHash=$(CommitHash)"
|
||||||
ManifestCommit="$(CommitHash)"
|
ManifestCommit="$(CommitHash)"
|
||||||
ManifestName="aspnet"
|
ManifestName="aspnet"
|
||||||
MaxClients="$(PushToBlobFeed_MaxClients)" />
|
MaxClients="$(PushToBlobFeed_MaxClients)" />
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,7 @@
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" AppMetapackage="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging" Category="ship" AppMetapackage="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging.Abstractions" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging.Abstractions" Category="ship" AppMetapackage="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="noship" Analyzer="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="shipoob" Analyzer="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging.AzureAppServices" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging.AzureAppServices" Category="ship" AppMetapackage="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" />
|
||||||
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" Category="ship" AppMetapackage="true" />
|
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" Category="ship" AppMetapackage="true" />
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
<DevDependency_MicrosoftDotNetBuildTasksFeedPackageVersion>2.1.0-prerelease-02430-04</DevDependency_MicrosoftDotNetBuildTasksFeedPackageVersion>
|
||||||
|
<DevDependency_MicrosoftExtensionsDependencyModelPackageVersion>2.0.0</DevDependency_MicrosoftExtensionsDependencyModelPackageVersion>
|
||||||
|
<DevDependency_WindowsAzureStoragePackageVersion>8.7.0</DevDependency_WindowsAzureStoragePackageVersion>
|
||||||
<BenchmarkDotNetPackageVersion>0.10.11</BenchmarkDotNetPackageVersion>
|
<BenchmarkDotNetPackageVersion>0.10.11</BenchmarkDotNetPackageVersion>
|
||||||
<Benchmarks_11_SystemDataSqlClientPackageVersion>4.3.1</Benchmarks_11_SystemDataSqlClientPackageVersion>
|
<Benchmarks_11_SystemDataSqlClientPackageVersion>4.3.1</Benchmarks_11_SystemDataSqlClientPackageVersion>
|
||||||
<BuildBundlerMinifierPackageVersion>2.4.337</BuildBundlerMinifierPackageVersion>
|
<BuildBundlerMinifierPackageVersion>2.4.337</BuildBundlerMinifierPackageVersion>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.Build.Framework;
|
||||||
|
using Microsoft.Build.Utilities;
|
||||||
|
using NuGet.Packaging;
|
||||||
|
using NuGet.Packaging.Core;
|
||||||
|
using NuGet.Versioning;
|
||||||
|
|
||||||
|
namespace RepoTasks
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Layouts nuget packages as a V3 feed
|
||||||
|
/// </summary>
|
||||||
|
public class CreateNuGetV3FolderFeed : Task
|
||||||
|
{
|
||||||
|
[Required]
|
||||||
|
public ITaskItem[] Packages { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public string DestinationFolder { get; set; }
|
||||||
|
|
||||||
|
public bool Overwrite { get; set; }
|
||||||
|
|
||||||
|
public override bool Execute()
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(DestinationFolder);
|
||||||
|
|
||||||
|
foreach (var file in Packages)
|
||||||
|
{
|
||||||
|
PackageIdentity identity;
|
||||||
|
using (var reader = new PackageArchiveReader(file.ItemSpec))
|
||||||
|
{
|
||||||
|
identity = reader.GetIdentity();
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.LogMessage(MessageImportance.High, "Adding {0} to feed '{1}'", identity, DestinationFolder);
|
||||||
|
|
||||||
|
var packageFolder = Path.Combine(DestinationFolder, identity.Id.ToLowerInvariant(), identity.Version.ToNormalizedString());
|
||||||
|
var nuspecFile = Path.Combine(packageFolder, $"{identity.Id.ToLowerInvariant()}.{identity.Version.ToNormalizedString()}.nuspec");
|
||||||
|
var nupkgFile = Path.Combine(packageFolder, $"{identity.Id.ToLowerInvariant()}.{identity.Version.ToNormalizedString()}.nupkg");
|
||||||
|
var sha512File = Path.Combine(packageFolder, $"{identity.Id.ToLowerInvariant()}.{identity.Version.ToNormalizedString()}.nupkg.sha512");
|
||||||
|
|
||||||
|
if (!Overwrite && File.Exists(nuspecFile))
|
||||||
|
{
|
||||||
|
Log.LogError("File already exists: {0}", nuspecFile);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!Overwrite && File.Exists(nupkgFile))
|
||||||
|
{
|
||||||
|
Log.LogError("File already exists: {0}", nupkgFile);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!Overwrite && File.Exists(sha512File))
|
||||||
|
{
|
||||||
|
Log.LogError("File already exists: {0}", sha512File);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Directory.CreateDirectory(packageFolder);
|
||||||
|
using (var reader = new PackageArchiveReader(file.ItemSpec))
|
||||||
|
using (var nuspec = File.Create(nuspecFile))
|
||||||
|
using (var metadata = reader.GetNuspec())
|
||||||
|
{
|
||||||
|
Log.LogMessage("Creating {0}", nuspecFile);
|
||||||
|
metadata.CopyTo(nuspec);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.LogMessage("Copying {0}", nupkgFile);
|
||||||
|
File.Copy(file.ItemSpec, nupkgFile);
|
||||||
|
Log.LogMessage("Creating {0}", sha512File);
|
||||||
|
File.WriteAllText(sha512File, GetFileHash(file.ItemSpec));
|
||||||
|
}
|
||||||
|
|
||||||
|
return !Log.HasLoggedErrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetFileHash(string filePath)
|
||||||
|
{
|
||||||
|
byte[] hash;
|
||||||
|
|
||||||
|
using (var algorithm = new SHA512Managed())
|
||||||
|
using (var stream = File.OpenRead(filePath))
|
||||||
|
{
|
||||||
|
hash = algorithm.ComputeHash(stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Convert.ToBase64String(hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,14 +1,17 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="$(RepoTasksSdkPath)\Sdk.props" Condition="'$(RepoTasksSdkPath)' != '' "/>
|
<Import Project="$(RepoTasksSdkPath)\Sdk.props" Condition="'$(RepoTasksSdkPath)' != '' "/>
|
||||||
|
<Import Project="..\dependencies.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<RestoreAdditionalProjectSources>https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json</RestoreAdditionalProjectSources>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NuGet.Build.Tasks" Version="$(NuGetInMSBuildVersion)" PrivateAssets="All" />
|
<PackageReference Include="NuGet.Build.Tasks" Version="$(NuGetInMSBuildVersion)" PrivateAssets="All" />
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" PrivateAssets="All" />
|
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DevDependency_MicrosoftExtensionsDependencyModelPackageVersion)" PrivateAssets="All" />
|
||||||
<PackageReference Include="WindowsAzure.Storage" Version="8.7.0" />
|
<PackageReference Include="WindowsAzure.Storage" Version="$(DevDependency_WindowsAzureStoragePackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(DevDependency_MicrosoftDotNetBuildTasksFeedPackageVersion)" ExcludeAssets="Build" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="$(RepoTasksSdkPath)\Sdk.targets" Condition="'$(RepoTasksSdkPath)' != '' "/>
|
<Import Project="$(RepoTasksSdkPath)\Sdk.targets" Condition="'$(RepoTasksSdkPath)' != '' "/>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
<UsingTask TaskName="RepoTasks.ConsolidateManifests" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.ConsolidateManifests" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CopyPackagesToSplitFolders" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CopyPackagesToSplitFolders" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CreateCommonManifest" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CreateCommonManifest" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
|
<UsingTask TaskName="RepoTasks.CreateNuGetV3FolderFeed" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.JoinItems" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.JoinItems" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.OrderBy" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.OrderBy" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
|
|
@ -20,4 +21,15 @@
|
||||||
<UsingTask TaskName="RepoTasks.ResolveHostingStartupPackages" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.ResolveHostingStartupPackages" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.TrimDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.TrimDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.VerifyCoherentVersions" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.VerifyCoherentVersions" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
|
|
||||||
|
<!-- tools from dotnet-buildtools -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<NuGetPackagesPath>$(NUGET_PACKAGES)</NuGetPackagesPath>
|
||||||
|
<NuGetPackagesPath Condition=" '$(NuGetPackagesPath)' == '' AND '$(USERPROFILE)' != '' ">$(USERPROFILE)\.nuget\packages\</NuGetPackagesPath>
|
||||||
|
<NuGetPackagesPath Condition=" '$(NuGetPackagesPath)' == '' AND '$(HOME)' != '' ">$(HOME)\.nuget\packages\</NuGetPackagesPath>
|
||||||
|
<NuGetPackagesPath>$([MSBuild]::NormalizeDirectory($(NuGetPackagesPath)))</NuGetPackagesPath>
|
||||||
|
<_MicrosoftDotNetBuildTasksFeedTaskDir>$(NuGetPackagesPath)microsoft.dotnet.build.tasks.feed\$(DevDependency_MicrosoftDotNetBuildTasksFeedPackageVersion.ToLowerInvariant())\build\netstandard1.5\</_MicrosoftDotNetBuildTasksFeedTaskDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<UsingTask TaskName="PushToBlobFeed" AssemblyFile="$(_MicrosoftDotNetBuildTasksFeedTaskDir)Microsoft.DotNet.Build.Tasks.Feed.dll"/>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue