Merge branch 'release/2.2'
This commit is contained in:
commit
1aa529ddf6
|
|
@ -25,3 +25,5 @@ global.json
|
||||||
msbuild.ProjectImports.zip
|
msbuild.ProjectImports.zip
|
||||||
.env
|
.env
|
||||||
scripts/tmp/
|
scripts/tmp/
|
||||||
|
.dotnet/
|
||||||
|
.tools/
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,8 @@
|
||||||
<Import Project="build\common.props" />
|
<Import Project="build\common.props" />
|
||||||
<Import Project="build\external-dependencies.props" />
|
<Import Project="build\external-dependencies.props" />
|
||||||
<Import Project="build\sources.props" />
|
<Import Project="build\sources.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
|
||||||
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -1,125 +1,32 @@
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<Target Name="BuildFallbackArchive" DependsOnTargets="ResolveRepoInfo;GeneratePropsFiles">
|
||||||
<_TemplatesDirectory>$(MSBuildThisFileDirectory)tools\templates\</_TemplatesDirectory>
|
|
||||||
<_WorkRoot>$(RepositoryRoot).w\</_WorkRoot>
|
|
||||||
<PreviousArchivePropsFile>$(MSBuildThisFileDirectory)PreviousArchiveManifest.props</PreviousArchivePropsFile>
|
|
||||||
<MetapackageRestoreSource>$(RepositoryRoot).deps\Signed\Packages\</MetapackageRestoreSource>
|
|
||||||
<LzmaOutputPackageName>nuGetPackagesArchive-$(PackageVersion)</LzmaOutputPackageName>
|
|
||||||
<FallbackStagingDir>$(_WorkRoot)obj\$(LzmaOutputPackageName)\</FallbackStagingDir>
|
|
||||||
<FallbackOutputDir>$(ArtifactsDir)lzma\</FallbackOutputDir>
|
|
||||||
<FallbackOutputPath>$(FallbackOutputDir)$(LzmaOutputPackageName).lzma</FallbackOutputPath>
|
|
||||||
<FallbackAntaresZipOutputPath>$(FallbackOutputDir)$(LzmaOutputPackageName)-antares.zip</FallbackAntaresZipOutputPath>
|
|
||||||
<GeneratedFallbackRestoreSourcesPropsPath>$(_WorkRoot)restoresources.$(LzmaOutputPackageName).props</GeneratedFallbackRestoreSourcesPropsPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Import Project="$(PreviousArchivePropsFile)" Condition="Exists($(PreviousArchivePropsFile))" />
|
|
||||||
|
|
||||||
<Target Name="BuildFallbackArchive" DependsOnTargets="ResolveRepoInfo">
|
|
||||||
<!-- Clear the directories -->
|
|
||||||
<RemoveDir Directories="$(_WorkRoot)" />
|
|
||||||
|
|
||||||
<!-- Copy the archive template -->
|
|
||||||
<Copy SourceFiles="$(_TemplatesDirectory)Archive\Archive.csproj" DestinationFiles="$(_WorkRoot)Archive.csproj" />
|
|
||||||
|
|
||||||
<!-- Copy the archive template -->
|
|
||||||
<RepoTasks.AddArchiveReferences
|
|
||||||
ReferencePackagePath="$(_WorkRoot)Archive.csproj"
|
|
||||||
BuildArtifacts="@(ArtifactInfo)"
|
|
||||||
PackageArtifacts="@(PackageArtifact)"
|
|
||||||
ExternalDependencies="@(ExternalDependency)"
|
|
||||||
MetapackageVersion="$(PackageVersion)" />
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<_FallbackArchiveRestoreSources Include="$(RestoreSources)" />
|
<ArchiveProjects Include="$(RepositoryRoot)src\PackageArchive\Archive.*\*.*proj" />
|
||||||
<_FallbackArchiveRestoreSources Include="$(BuildDir)" Condition="Exists($(BuildDir))" />
|
|
||||||
<_FallbackArchiveRestoreSources Include="$(MetapackageRestoreSource)" Condition="Exists($(MetapackageRestoreSource))" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<RepoTasks.GenerateRestoreSourcesPropsFile
|
<PropertyGroup>
|
||||||
Sources="@(_FallbackArchiveRestoreSources)"
|
<ArchiveBuildProps>
|
||||||
OutputPath="$(GeneratedFallbackRestoreSourcesPropsPath)" />
|
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
|
||||||
|
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
|
||||||
|
OutputPath=$(ArtifactsDir)lzma\;
|
||||||
|
_BuildToolsAssembly=$(_BuildToolsAssembly)
|
||||||
|
</ArchiveBuildProps>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- Create the Staging Dir -->
|
<Error Text="Could not find any package archive projects to build"
|
||||||
<MakeDir Directories="$(FallbackStagingDir);$(FallbackOutputDir)" />
|
Condition=" @(ArchiveProjects->Count()) == 0 " />
|
||||||
|
|
||||||
<!-- Restore the target project -->
|
<MSBuild Projects="@(ArchiveProjects)"
|
||||||
<MSBuild
|
|
||||||
Projects="$(_WorkRoot)Archive.csproj"
|
|
||||||
Targets="Restore"
|
Targets="Restore"
|
||||||
Properties="RestorePackagesPath=$(FallbackStagingDir);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp30PackageVersion);DotNetRestoreSourcePropsPath=$(GeneratedFallbackRestoreSourcesPropsPath);DotNetBuildOffline=true;AspNetUniverseBuildOffline=true" />
|
BuildInParallel="false"
|
||||||
|
StopOnFirstFailure="true"
|
||||||
|
Properties="$(ArchiveBuildProps);_Dummy=restore" />
|
||||||
|
|
||||||
<!-- Create the archive -->
|
<MSBuild Projects="@(ArchiveProjects)"
|
||||||
<RepoTasks.CreateLzma OutputPath="$(FallbackOutputPath)" Sources="$(FallbackStagingDir)" />
|
Targets="Build"
|
||||||
</Target>
|
BuildInParallel="false"
|
||||||
|
StopOnFirstFailure="true"
|
||||||
<Target Name="UpdatePreviousArchiveManifest">
|
Properties="$(ArchiveBuildProps)" />
|
||||||
<Error Text="Please only specify one of PreviousLzmaUrl or PreviousLzmaFile but not both" Condition="'$(PreviousLzmaUrl)' != '' AND '$(PreviousLzmaFile)' != ''" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<PreviousLzmaLayout>$(_WorkRoot)previous\</PreviousLzmaLayout>
|
|
||||||
<PreviousLzmaFile Condition="'$(PreviousLzmaFile)' == ''">$(RepositoryRoot).deps\nuGetPackagesArchive.previous.lzma</PreviousLzmaFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<!-- Clear the directories -->
|
|
||||||
<RemoveDir Directories="$(PreviousLzmaLayout)" />
|
|
||||||
|
|
||||||
<!-- Download and extract the previous LZMA if specified -->
|
|
||||||
<KoreBuild.Tasks.DownloadFile
|
|
||||||
Uri="$(PreviousLzmaUrl)"
|
|
||||||
DestinationPath="$(PreviousLzmaFile)"
|
|
||||||
Condition="'$(PreviousLzmaUrl)' != ''" />
|
|
||||||
<RepoTasks.ExtractLzma
|
|
||||||
InputArchive="$(PreviousLzmaFile)"
|
|
||||||
OutputPath="$(PreviousLzmaLayout)"
|
|
||||||
Condition="Exists($(PreviousLzmaFile))" />
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PreviousLzmaContents Remove="@(PreviousLzmaContents)" />
|
|
||||||
<PreviousLzmaContents Include="$(PreviousLzmaLayout)**\*.*" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<!-- Create the archive -->
|
|
||||||
<RepoTasks.UpdatePreviousArchiveManifest OutputPath="$(PreviousArchivePropsFile)" Contents="@(PreviousLzmaContents)" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="BuildAntaresFallbackZip">
|
|
||||||
<Error Text="Please only specify one of InputLzmaUrl or InputLzmaFile but not both" Condition="'$(InputLzmaUrl)' != '' AND '$(InputLzmaFile)' != ''" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<InputLzmaLayout>$(_WorkRoot)input\</InputLzmaLayout>
|
|
||||||
<InputLzmaFile Condition="'$(InputLzmaFile)' == ''">$(RepositoryRoot).deps\nuGetPackagesArchive.input.lzma</InputLzmaFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<!-- Clear the directories -->
|
|
||||||
<RemoveDir Directories="$(InputLzmaLayout)" />
|
|
||||||
|
|
||||||
<!-- Download and extract the input LZMA if specified -->
|
|
||||||
<KoreBuild.Tasks.DownloadFile
|
|
||||||
Uri="$(InputLzmaUrl)"
|
|
||||||
DestinationPath="$(InputLzmaFile)"
|
|
||||||
Condition="'$(InputLzmaUrl)' != ''" />
|
|
||||||
<RepoTasks.ExtractLzma
|
|
||||||
InputArchive="$(InputLzmaFile)"
|
|
||||||
OutputPath="$(InputLzmaLayout)"
|
|
||||||
Condition="Exists($(InputLzmaFile))" />
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<InputLzmaContents Include="$(InputLzmaLayout)**\*.*" Exclude="$(InputLzmaLayout)**\*.nupkg" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Error Text="No lzma content found. Please specify a lzma via InputLzmaUrl or InputLzmaFile or run the BuildFallbackArchive target." Condition="'@(InputLzmaContents)' == ''" />
|
|
||||||
|
|
||||||
<!-- Filter lzma content to remove existing content and .xml files -->
|
|
||||||
<RepoTasks.FilterLzmaContent PreviousLzmaContent="@(PreviousLzmaContents)" InputLzmaContent="@(InputLzmaContents)">
|
|
||||||
<Output TaskParameter="FilteredLzmaContent" ItemName="AntaresLzmaContents" />
|
|
||||||
</RepoTasks.FilterLzmaContent>
|
|
||||||
|
|
||||||
<!-- Create antares zip -->
|
|
||||||
<ZipArchive
|
|
||||||
File="$(FallbackAntaresZipOutputPath)"
|
|
||||||
SourceFiles="@(AntaresLzmaContents)"
|
|
||||||
WorkingDirectory="$(InputLzmaLayout)"
|
|
||||||
Overwrite="true"
|
|
||||||
Condition="'@(AntaresLzmaContents)' != ''"/>
|
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -61,7 +61,6 @@
|
||||||
<BlobBasePath>aspnetcore/Runtime/$(PackageVersion)/</BlobBasePath>
|
<BlobBasePath>aspnetcore/Runtime/$(PackageVersion)/</BlobBasePath>
|
||||||
<NpmBlobBasePath>aspnetcore/npm/</NpmBlobBasePath>
|
<NpmBlobBasePath>aspnetcore/npm/</NpmBlobBasePath>
|
||||||
<AliasBlobBasePath>aspnetcore/Runtime/$(SharedFxCliBlobChannel)/</AliasBlobBasePath>
|
<AliasBlobBasePath>aspnetcore/Runtime/$(SharedFxCliBlobChannel)/</AliasBlobBasePath>
|
||||||
<PackageArchiveFileName>nuGetPackagesArchive-$(PackageVersion).lzma</PackageArchiveFileName>
|
|
||||||
<SiteExtensionArchiveFileName>runtime-site-extension-internal-$(PackageVersion).zip</SiteExtensionArchiveFileName>
|
<SiteExtensionArchiveFileName>runtime-site-extension-internal-$(PackageVersion).zip</SiteExtensionArchiveFileName>
|
||||||
<InstallerBaseFileName>aspnetcore-runtime-$(PackageVersion)</InstallerBaseFileName>
|
<InstallerBaseFileName>aspnetcore-runtime-$(PackageVersion)</InstallerBaseFileName>
|
||||||
<InstallerAliasBaseFileName>aspnetcore-runtime-latest</InstallerAliasBaseFileName>
|
<InstallerAliasBaseFileName>aspnetcore-runtime-latest</InstallerAliasBaseFileName>
|
||||||
|
|
@ -76,14 +75,30 @@
|
||||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
</FilesToPublish>
|
</FilesToPublish>
|
||||||
|
|
||||||
|
<!-- Package archives -->
|
||||||
|
<FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-$(PackageVersion).zip" >
|
||||||
|
<RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-$(PackageVersion).zip</RelativeBlobPath>
|
||||||
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
|
</FilesToPublish>
|
||||||
|
|
||||||
|
<FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip" >
|
||||||
|
<RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip</RelativeBlobPath>
|
||||||
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
|
</FilesToPublish>
|
||||||
|
|
||||||
|
<FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip" >
|
||||||
|
<RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip</RelativeBlobPath>
|
||||||
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
|
</FilesToPublish>
|
||||||
|
|
||||||
<!-- Intermediate files passed on to the dotnet-CLI. -->
|
<!-- Intermediate files passed on to the dotnet-CLI. -->
|
||||||
<FilesToPublish Include="$(DependencyAssetsDir)$(SiteExtensionArchiveFileName)" Condition="@(Repository->AnyHaveMetadataValue('Identity', 'AzureIntegration'))">
|
<FilesToPublish Include="$(DependencyAssetsDir)$(SiteExtensionArchiveFileName)" Condition="@(Repository->AnyHaveMetadataValue('Identity', 'AzureIntegration'))">
|
||||||
<RelativeBlobPath>$(BlobBasePath)$(SiteExtensionArchiveFileName)</RelativeBlobPath>
|
<RelativeBlobPath>$(BlobBasePath)$(SiteExtensionArchiveFileName)</RelativeBlobPath>
|
||||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
</FilesToPublish>
|
</FilesToPublish>
|
||||||
|
|
||||||
<FilesToPublish Include="$(DependencyAssetsDir)$(PackageArchiveFileName)" >
|
<FilesToPublish Include="$(DependencyAssetsDir)nuGetPackagesArchive-$(PackageVersion).lzma" >
|
||||||
<RelativeBlobPath>$(BlobBasePath)$(PackageArchiveFileName)</RelativeBlobPath>
|
<RelativeBlobPath>$(BlobBasePath)nuGetPackagesArchive-$(PackageVersion).lzma</RelativeBlobPath>
|
||||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||||
</FilesToPublish>
|
</FilesToPublish>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@
|
||||||
<AllMetapackage>false</AllMetapackage>
|
<AllMetapackage>false</AllMetapackage>
|
||||||
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.Analyzers metapackage. -->
|
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.Analyzers metapackage. -->
|
||||||
<Analyzer>false</Analyzer>
|
<Analyzer>false</Analyzer>
|
||||||
<!-- When true, this dependency will be included in the LZMA. -->
|
|
||||||
<LZMA>false</LZMA>
|
|
||||||
<!--
|
<!--
|
||||||
Other known package types:
|
Other known package types:
|
||||||
Dependency = for packages that are installed via PackageReference
|
Dependency = for packages that are installed via PackageReference
|
||||||
|
|
@ -29,8 +27,8 @@
|
||||||
<PackageArtifact Include="Internal.AspNetCore.Analyzers" Category="noship" />
|
<PackageArtifact Include="Internal.AspNetCore.Analyzers" Category="noship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Category="noship" />
|
<PackageArtifact Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Category="noship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Analyzers" Category="shipoob" />
|
<PackageArtifact Include="Microsoft.AspNetCore.Analyzers" Category="shipoob" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Analyzer.Testing" Category="noship" />
|
<PackageArtifact Include="Microsoft.AspNetCore.Analyzer.Testing" Category="noship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
|
|
@ -39,8 +37,8 @@
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Category="noship" />
|
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Category="noship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
|
||||||
|
|
@ -298,14 +296,14 @@
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.LanguageServices.Razor" Category="shipoob" />
|
<PackageArtifact Include="Microsoft.VisualStudio.LanguageServices.Razor" Category="shipoob" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Mac.LanguageServices.Razor" Category="shipoob" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Mac.LanguageServices.Razor" Category="shipoob" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.BrowserLink" Category="ship" AllMetapackage="true"/>
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.BrowserLink" Category="ship" AllMetapackage="true"/>
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Contracts" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Contracts" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Core" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Core" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Templating" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Templating" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Category="ship" LZMA="true" />
|
<PackageArtifact Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Category="ship" />
|
||||||
<PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" />
|
<PackageArtifact Include="Microsoft.Web.Xdt.Extensions" Category="shipoob" />
|
||||||
<PackageArtifact Include="RazorPageGenerator" Category="noship" />
|
<PackageArtifact Include="RazorPageGenerator" Category="noship" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview1-26710-03</MicrosoftNETCoreAppPackageVersion>
|
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview1-26710-03</MicrosoftNETCoreAppPackageVersion>
|
||||||
<MicrosoftNETCoreDotNetAppHostPackageVersion>3.0.0-preview1-26710-03</MicrosoftNETCoreDotNetAppHostPackageVersion>
|
<MicrosoftNETCoreDotNetAppHostPackageVersion>3.0.0-preview1-26710-03</MicrosoftNETCoreDotNetAppHostPackageVersion>
|
||||||
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview1-26708-04</MicrosoftWin32RegistryPackageVersion>
|
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview1-26708-04</MicrosoftWin32RegistryPackageVersion>
|
||||||
<NuGetFrameworksPackageVersion>4.8.0-preview1.5116</NuGetFrameworksPackageVersion>
|
|
||||||
<SystemBuffersPackageVersion>4.6.0-preview1-26708-04</SystemBuffersPackageVersion>
|
<SystemBuffersPackageVersion>4.6.0-preview1-26708-04</SystemBuffersPackageVersion>
|
||||||
<SystemCollectionsImmutablePackageVersion>1.6.0-preview1-26708-04</SystemCollectionsImmutablePackageVersion>
|
<SystemCollectionsImmutablePackageVersion>1.6.0-preview1-26708-04</SystemCollectionsImmutablePackageVersion>
|
||||||
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview1-26708-04</SystemComponentModelAnnotationsPackageVersion>
|
<SystemComponentModelAnnotationsPackageVersion>4.6.0-preview1-26708-04</SystemComponentModelAnnotationsPackageVersion>
|
||||||
|
|
@ -92,10 +91,10 @@
|
||||||
<MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>5.2.0</MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>
|
<MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>5.2.0</MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>
|
||||||
<MicrosoftIdentityModelProtocolsWsFederationPackageVersion>5.2.0</MicrosoftIdentityModelProtocolsWsFederationPackageVersion>
|
<MicrosoftIdentityModelProtocolsWsFederationPackageVersion>5.2.0</MicrosoftIdentityModelProtocolsWsFederationPackageVersion>
|
||||||
<MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.1.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>
|
<MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.1.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>
|
||||||
<MicrosoftNETCoreApp10PackageVersion>1.0.5</MicrosoftNETCoreApp10PackageVersion>
|
<MicrosoftNETCoreApp10PackageVersion>1.0.12</MicrosoftNETCoreApp10PackageVersion>
|
||||||
<MicrosoftNETCoreApp11PackageVersion>1.1.2</MicrosoftNETCoreApp11PackageVersion>
|
<MicrosoftNETCoreApp11PackageVersion>1.1.9</MicrosoftNETCoreApp11PackageVersion>
|
||||||
<MicrosoftNETCoreApp20PackageVersion>2.0.0</MicrosoftNETCoreApp20PackageVersion>
|
<MicrosoftNETCoreApp20PackageVersion>2.0.9</MicrosoftNETCoreApp20PackageVersion>
|
||||||
<MicrosoftNETCoreApp21PackageVersion>2.1.0</MicrosoftNETCoreApp21PackageVersion>
|
<MicrosoftNETCoreApp21PackageVersion>2.1.2</MicrosoftNETCoreApp21PackageVersion>
|
||||||
<MicrosoftNETCoreApp22PackageVersion>2.2.0-preview1-26618-02</MicrosoftNETCoreApp22PackageVersion>
|
<MicrosoftNETCoreApp22PackageVersion>2.2.0-preview1-26618-02</MicrosoftNETCoreApp22PackageVersion>
|
||||||
<MicrosoftNETCoreDotNetAppHost21PackageVersion>$(MicrosoftNETCoreApp21PackageVersion)</MicrosoftNETCoreDotNetAppHost21PackageVersion>
|
<MicrosoftNETCoreDotNetAppHost21PackageVersion>$(MicrosoftNETCoreApp21PackageVersion)</MicrosoftNETCoreDotNetAppHost21PackageVersion>
|
||||||
<MicrosoftNETCoreDotNetAppHost22PackageVersion>$(MicrosoftNETCoreApp22PackageVersion)</MicrosoftNETCoreDotNetAppHost22PackageVersion>
|
<MicrosoftNETCoreDotNetAppHost22PackageVersion>$(MicrosoftNETCoreApp22PackageVersion)</MicrosoftNETCoreDotNetAppHost22PackageVersion>
|
||||||
|
|
@ -128,6 +127,7 @@
|
||||||
<NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
|
<NETStandardLibrary20PackageVersion>2.0.3</NETStandardLibrary20PackageVersion>
|
||||||
<NewtonsoftJsonBsonPackageVersion>1.0.1</NewtonsoftJsonBsonPackageVersion>
|
<NewtonsoftJsonBsonPackageVersion>1.0.1</NewtonsoftJsonBsonPackageVersion>
|
||||||
<NewtonsoftJsonPackageVersion>11.0.2</NewtonsoftJsonPackageVersion>
|
<NewtonsoftJsonPackageVersion>11.0.2</NewtonsoftJsonPackageVersion>
|
||||||
|
<NuGetFrameworksPackageVersion>4.7.0</NuGetFrameworksPackageVersion>
|
||||||
<OracleManagedDataAccessPackageVersion>12.2.1100</OracleManagedDataAccessPackageVersion>
|
<OracleManagedDataAccessPackageVersion>12.2.1100</OracleManagedDataAccessPackageVersion>
|
||||||
<PollyExtensionsHttpPackageVersion>2.0.1</PollyExtensionsHttpPackageVersion>
|
<PollyExtensionsHttpPackageVersion>2.0.1</PollyExtensionsHttpPackageVersion>
|
||||||
<PollyPackageVersion>6.0.1</PollyPackageVersion>
|
<PollyPackageVersion>6.0.1</PollyPackageVersion>
|
||||||
|
|
@ -160,7 +160,7 @@
|
||||||
<VSIX_MicrosoftVisualStudioLanguageServicesRazorRemoteClientPackageVersion>2.9.0-beta4-62911-02</VSIX_MicrosoftVisualStudioLanguageServicesRazorRemoteClientPackageVersion>
|
<VSIX_MicrosoftVisualStudioLanguageServicesRazorRemoteClientPackageVersion>2.9.0-beta4-62911-02</VSIX_MicrosoftVisualStudioLanguageServicesRazorRemoteClientPackageVersion>
|
||||||
<WindowsAzureStoragePackageVersion>8.1.4</WindowsAzureStoragePackageVersion>
|
<WindowsAzureStoragePackageVersion>8.1.4</WindowsAzureStoragePackageVersion>
|
||||||
<XunitAbstractionsPackageVersion>2.0.1</XunitAbstractionsPackageVersion>
|
<XunitAbstractionsPackageVersion>2.0.1</XunitAbstractionsPackageVersion>
|
||||||
<XunitAnalyzersPackageVersion>0.8.0</XunitAnalyzersPackageVersion>
|
<XunitAnalyzersPackageVersion>0.9.0</XunitAnalyzersPackageVersion>
|
||||||
<XunitAssertPackageVersion>2.3.1</XunitAssertPackageVersion>
|
<XunitAssertPackageVersion>2.3.1</XunitAssertPackageVersion>
|
||||||
<XunitCorePackageVersion>2.3.1</XunitCorePackageVersion>
|
<XunitCorePackageVersion>2.3.1</XunitCorePackageVersion>
|
||||||
<XunitExtensibilityCorePackageVersion>2.3.1</XunitExtensibilityCorePackageVersion>
|
<XunitExtensibilityCorePackageVersion>2.3.1</XunitExtensibilityCorePackageVersion>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
<SubmoduleRoot>$(RepositoryRoot)modules\</SubmoduleRoot>
|
<SubmoduleRoot>$(RepositoryRoot)modules\</SubmoduleRoot>
|
||||||
|
|
||||||
<DependencyPackageDir>$(RepositoryRoot).deps\build\</DependencyPackageDir>
|
<DependencyPackageDir>$(RepositoryRoot).deps\build\</DependencyPackageDir>
|
||||||
|
<SignedDependencyPackageDir>$(RepositoryRoot).deps\Signed\Packages\</SignedDependencyPackageDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,7 @@
|
||||||
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
|
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
|
||||||
|
|
||||||
<_RestoreSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
|
<_RestoreSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
|
||||||
|
<_RestoreSources Include="$(SignedDependencyPackageDir)" Condition="'$(SignedDependencyPackageDir)' != '' AND Exists('$(SignedDependencyPackageDir)')" />
|
||||||
<_RestoreSources Include="$(BuildDir)" />
|
<_RestoreSources Include="$(BuildDir)" />
|
||||||
<_RestoreSources Include="$(RestoreSources)" />
|
<_RestoreSources Include="$(RestoreSources)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -1,151 +0,0 @@
|
||||||
// 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.Linq;
|
|
||||||
using System.Xml;
|
|
||||||
using Microsoft.Build.Framework;
|
|
||||||
using Microsoft.Build.Utilities;
|
|
||||||
using NuGet.Versioning;
|
|
||||||
using RepoTasks.Utilities;
|
|
||||||
|
|
||||||
namespace RepoTasks
|
|
||||||
{
|
|
||||||
public class AddArchiveReferences : Task
|
|
||||||
{
|
|
||||||
[Required]
|
|
||||||
public string ReferencePackagePath { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public string MetaPackageVersion { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public ITaskItem[] BuildArtifacts { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public ITaskItem[] PackageArtifacts { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public ITaskItem[] ExternalDependencies { get; set; }
|
|
||||||
|
|
||||||
public override bool Execute()
|
|
||||||
{
|
|
||||||
// Parse input
|
|
||||||
var externalArchiveArtifacts = ExternalDependencies.Where(p => p.GetMetadata("LZMA") == "true" && p.GetMetadata("PackageType") == "Dependency");
|
|
||||||
var externalArchiveTools = ExternalDependencies.Where(p => p.GetMetadata("LZMA") == "true" && p.GetMetadata("PackageType") == "DotnetCliTool");
|
|
||||||
var archiveArtifacts = PackageArtifacts.Where(p => p.GetMetadata("LZMA") == "true" && p.GetMetadata("PackageType") == "Dependency");
|
|
||||||
var archiveTools = PackageArtifacts.Where(p => p.GetMetadata("LZMA") == "true" && p.GetMetadata("PackageType") == "DotnetCliTool");
|
|
||||||
var buildArtifacts = BuildArtifacts.Select(ArtifactInfo.Parse)
|
|
||||||
.OfType<ArtifactInfo.Package>()
|
|
||||||
.Where(p => !p.IsSymbolsArtifact);
|
|
||||||
|
|
||||||
var xmlDoc = new XmlDocument();
|
|
||||||
xmlDoc.Load(ReferencePackagePath);
|
|
||||||
|
|
||||||
// Project
|
|
||||||
var projectElement = xmlDoc.FirstChild;
|
|
||||||
|
|
||||||
// Items
|
|
||||||
var itemGroupElement = xmlDoc.CreateElement("ItemGroup");
|
|
||||||
Log.LogMessage(MessageImportance.High, $"Archive will include the following packages");
|
|
||||||
|
|
||||||
foreach (var package in archiveArtifacts)
|
|
||||||
{
|
|
||||||
var packageName = package.ItemSpec;
|
|
||||||
|
|
||||||
string packageVersion;
|
|
||||||
|
|
||||||
if (string.Equals(packageName, "Microsoft.AspNetCore.All", StringComparison.OrdinalIgnoreCase)
|
|
||||||
|| string.Equals(packageName, "Microsoft.AspNetCore.App", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
packageVersion = MetaPackageVersion;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var packageVersionCandidates = buildArtifacts.Where(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (!packageVersionCandidates.Any())
|
|
||||||
{
|
|
||||||
Log.LogError($"Missing Package: {packageName} from artifacts archive.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (packageVersionCandidates.Count() > 1)
|
|
||||||
{
|
|
||||||
Log.LogError($"Duplicate Packages: {packageName} from artifacts archive.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
packageVersion = packageVersionCandidates.Single().PackageInfo.Version.ToString();
|
|
||||||
}
|
|
||||||
Log.LogMessage(MessageImportance.High, $" - Package: {packageName} Version: {packageVersion}");
|
|
||||||
|
|
||||||
var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
|
|
||||||
packageReferenceElement.SetAttribute("Include", packageName);
|
|
||||||
packageReferenceElement.SetAttribute("Version", packageVersion);
|
|
||||||
|
|
||||||
itemGroupElement.AppendChild(packageReferenceElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var package in externalArchiveArtifacts)
|
|
||||||
{
|
|
||||||
var packageName = package.ItemSpec;
|
|
||||||
var packageVersion = package.GetMetadata("Version");
|
|
||||||
Log.LogMessage(MessageImportance.High, $" - Package: {packageName} Version: {packageVersion}");
|
|
||||||
|
|
||||||
var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
|
|
||||||
packageReferenceElement.SetAttribute("Include", packageName);
|
|
||||||
packageReferenceElement.SetAttribute("Version", packageVersion);
|
|
||||||
|
|
||||||
itemGroupElement.AppendChild(packageReferenceElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var package in archiveTools)
|
|
||||||
{
|
|
||||||
var packageName = package.ItemSpec;
|
|
||||||
|
|
||||||
var packageVersionCandidates = buildArtifacts.Where(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (!packageVersionCandidates.Any())
|
|
||||||
{
|
|
||||||
Log.LogError($"Missing Package: {packageName} from tools archive.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (packageVersionCandidates.Count() > 1)
|
|
||||||
{
|
|
||||||
Log.LogError($"Duplicate Packages: {packageName} from tools archive.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var packageVersion = packageVersionCandidates.Single().PackageInfo.Version.ToString();
|
|
||||||
|
|
||||||
Log.LogMessage(MessageImportance.High, $" - Tool: {packageName} Version: {packageVersion}");
|
|
||||||
|
|
||||||
var packageReferenceElement = xmlDoc.CreateElement("DotNetCliToolReference");
|
|
||||||
packageReferenceElement.SetAttribute("Include", packageName);
|
|
||||||
packageReferenceElement.SetAttribute("Version", packageVersion);
|
|
||||||
|
|
||||||
itemGroupElement.AppendChild(packageReferenceElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var package in externalArchiveTools)
|
|
||||||
{
|
|
||||||
var packageName = package.ItemSpec;
|
|
||||||
var packageVersion = package.GetMetadata("Version");
|
|
||||||
Log.LogMessage(MessageImportance.High, $" - Tool: {packageName} Version: {packageVersion}");
|
|
||||||
|
|
||||||
var packageReferenceElement = xmlDoc.CreateElement("DotNetCliToolReference");
|
|
||||||
packageReferenceElement.SetAttribute("Include", packageName);
|
|
||||||
packageReferenceElement.SetAttribute("Version", packageVersion);
|
|
||||||
|
|
||||||
itemGroupElement.AppendChild(packageReferenceElement);
|
|
||||||
}
|
|
||||||
projectElement.AppendChild(itemGroupElement);
|
|
||||||
|
|
||||||
// Save updated file
|
|
||||||
xmlDoc.AppendChild(projectElement);
|
|
||||||
xmlDoc.Save(ReferencePackagePath);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +1,37 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// 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.
|
// 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.IO;
|
||||||
|
using System.Threading;
|
||||||
using Microsoft.Build.Framework;
|
using Microsoft.Build.Framework;
|
||||||
using Microsoft.Build.Utilities;
|
using Microsoft.Build.Utilities;
|
||||||
using Microsoft.DotNet.Archive;
|
using Microsoft.DotNet.Archive;
|
||||||
|
|
||||||
namespace RepoTasks
|
namespace RepoTasks
|
||||||
{
|
{
|
||||||
public class CreateLzma : Task
|
public class CreateLzma : Task, ICancelableTask
|
||||||
{
|
{
|
||||||
|
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string OutputPath { get; set; }
|
public string OutputPath { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string[] Sources { get; set; }
|
public string[] Sources { get; set; }
|
||||||
|
|
||||||
|
public void Cancel() => _cts.Cancel();
|
||||||
|
|
||||||
public override bool Execute()
|
public override bool Execute()
|
||||||
{
|
{
|
||||||
var progress = new ConsoleProgressReport();
|
var progress = new MSBuildProgressReport(Log, _cts.Token);
|
||||||
using (var archive = new IndexedArchive())
|
using (var archive = new IndexedArchive())
|
||||||
{
|
{
|
||||||
foreach (var source in Sources)
|
foreach (var source in Sources)
|
||||||
{
|
{
|
||||||
if (Directory.Exists(source))
|
if (Directory.Exists(source))
|
||||||
{
|
{
|
||||||
var trimmedSource = source.TrimEnd(new char[] { '\\', '/' });
|
var trimmedSource = source.TrimEnd(new []{ '\\', '/' });
|
||||||
Log.LogMessage(MessageImportance.High, $"Adding directory: {trimmedSource}");
|
Log.LogMessage(MessageImportance.High, $"Adding directory: {trimmedSource}");
|
||||||
archive.AddDirectory(trimmedSource, progress);
|
archive.AddDirectory(trimmedSource, progress);
|
||||||
}
|
}
|
||||||
|
|
@ -39,7 +45,26 @@ namespace RepoTasks
|
||||||
archive.Save(OutputPath, progress);
|
archive.Save(OutputPath, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return !Log.HasLoggedErrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class MSBuildProgressReport : IProgress<ProgressReport>
|
||||||
|
{
|
||||||
|
private TaskLoggingHelper _log;
|
||||||
|
private readonly CancellationToken _cancellationToken;
|
||||||
|
|
||||||
|
public MSBuildProgressReport(TaskLoggingHelper log, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
_log = log;
|
||||||
|
_cancellationToken = cancellationToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Report(ProgressReport value)
|
||||||
|
{
|
||||||
|
var complete = (double)value.Ticks / value.Total;
|
||||||
|
_log.LogMessage(MessageImportance.Low, $"Progress: {value.Phase} - {complete:P}");
|
||||||
|
_cancellationToken.ThrowIfCancellationRequested(); // because LZMA apis don't take a cancellation token, throw from the logger (yes, its ugly, but it works.)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
// 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 Microsoft.Build.Framework;
|
|
||||||
using Microsoft.Build.Utilities;
|
|
||||||
using Microsoft.DotNet.Archive;
|
|
||||||
|
|
||||||
namespace RepoTasks
|
|
||||||
{
|
|
||||||
public class ExtractLzma : Task
|
|
||||||
{
|
|
||||||
[Required]
|
|
||||||
public string InputArchive { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public string OutputPath { get; set; }
|
|
||||||
|
|
||||||
public override bool Execute()
|
|
||||||
{
|
|
||||||
Log.LogMessage(MessageImportance.High, $"Extracting LZMA: {InputArchive}");
|
|
||||||
new IndexedArchive().Extract(InputArchive, OutputPath, new ConsoleProgressReport());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
// 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.Linq;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Microsoft.Build.Framework;
|
|
||||||
using Microsoft.Build.Utilities;
|
|
||||||
using RepoTasks.Utilities;
|
|
||||||
|
|
||||||
namespace RepoTasks
|
|
||||||
{
|
|
||||||
public class FilterLzmaContent : Task
|
|
||||||
{
|
|
||||||
public ITaskItem[] PreviousLzmaContent { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public ITaskItem[] InputLzmaContent { get; set; }
|
|
||||||
|
|
||||||
[Output]
|
|
||||||
public ITaskItem[] FilteredLzmaContent { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public override bool Execute()
|
|
||||||
{
|
|
||||||
var previousContent = new HashSet<ITaskItem>(new ITaskItemComparer());
|
|
||||||
var inputContent = new HashSet<ITaskItem>(new ITaskItemComparer());
|
|
||||||
// Keeping dlls separate for use to trim xml
|
|
||||||
var inputDlls = new HashSet<ITaskItem>(new ITaskItemComparer());
|
|
||||||
var newContent = new List<ITaskItem>();
|
|
||||||
|
|
||||||
if (PreviousLzmaContent != null)
|
|
||||||
{
|
|
||||||
foreach (var item in PreviousLzmaContent)
|
|
||||||
{
|
|
||||||
// To round trip correctly, overwrite RecursiveDir with RelativeDir
|
|
||||||
item.SetMetadata("RecursiveDir", item.GetMetadata("RelativeDir"));
|
|
||||||
previousContent.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach (var item in InputLzmaContent)
|
|
||||||
{
|
|
||||||
var extension = item.GetExtension();
|
|
||||||
|
|
||||||
inputContent.Add(item);
|
|
||||||
if (string.Equals(".dll", extension, StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
inputDlls.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in inputContent)
|
|
||||||
{
|
|
||||||
// skip if contained in the previous LZMA
|
|
||||||
if (previousContent.Contains(item))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// skip if the file is an .xml that is matched with a .dll file
|
|
||||||
if (string.Equals(".xml", item.GetExtension(), StringComparison.OrdinalIgnoreCase)
|
|
||||||
&& inputDlls.Any(dll =>
|
|
||||||
// Match by filename
|
|
||||||
string.Equals(item.GetFileName(), dll.GetFileName(), StringComparison.OrdinalIgnoreCase)
|
|
||||||
// Match by folder structure (.xml must be under .dll's folder)
|
|
||||||
&& item.GetRecursiveDir().StartsWith(dll.GetRecursiveDir())))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
newContent.Add(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
FilteredLzmaContent = newContent.ToArray();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ITaskItemComparer : IEqualityComparer<ITaskItem>
|
|
||||||
{
|
|
||||||
public bool Equals(ITaskItem x, ITaskItem y)
|
|
||||||
=> string.Equals(x.GetRecursiveDir(), y.GetRecursiveDir(), StringComparison.OrdinalIgnoreCase)
|
|
||||||
&& string.Equals(x.GetFileName(), y.GetFileName(), StringComparison.OrdinalIgnoreCase)
|
|
||||||
&& string.Equals(x.GetExtension(), y.GetExtension(), StringComparison.OrdinalIgnoreCase);
|
|
||||||
|
|
||||||
public int GetHashCode(ITaskItem obj)
|
|
||||||
=> $"{obj.GetRecursiveDir()}{obj.GetFileName()}{obj.GetExtension()}".GetHashCode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
// 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 Microsoft.Build.Framework;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Concurrent;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
|
||||||
|
namespace RepoTasks
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Filters a list of .xml files to only those that are .NET Xml docs files
|
||||||
|
/// </summary>
|
||||||
|
public class GetDocXmlFiles : Microsoft.Build.Utilities.Task
|
||||||
|
{
|
||||||
|
[Required]
|
||||||
|
public ITaskItem[] Files { get; set; }
|
||||||
|
|
||||||
|
[Output]
|
||||||
|
public ITaskItem[] XmlDocFiles { get; set; }
|
||||||
|
|
||||||
|
public override bool Execute()
|
||||||
|
{
|
||||||
|
var xmlDocs = new ConcurrentBag<ITaskItem>();
|
||||||
|
Parallel.ForEach(Files, f =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var file = File.OpenRead(f.ItemSpec))
|
||||||
|
using (var reader = new StreamReader(file))
|
||||||
|
{
|
||||||
|
string line;
|
||||||
|
for (var i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
line = reader.ReadLine();
|
||||||
|
if (i == 0 && line.StartsWith("<?xml", StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
line = line.Substring(line.IndexOf("?>") + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (line.StartsWith("<doc>", StringComparison.OrdinalIgnoreCase) || line.StartsWith("<doc xml:", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
xmlDocs.Add(f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.LogMessage(MessageImportance.Normal, $"Failed to read {f.ItemSpec}: {ex.ToString()}");
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.LogMessage($"Did not detect {f.ItemSpec} as an xml doc file");
|
||||||
|
});
|
||||||
|
|
||||||
|
XmlDocFiles = xmlDocs.ToArray();
|
||||||
|
Log.LogMessage($"Found {XmlDocFiles.Length} xml doc file(s)");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,24 +3,21 @@
|
||||||
<_RepoTaskAssembly>$(MSBuildThisFileDirectory)bin\publish\RepoTasks.dll</_RepoTaskAssembly>
|
<_RepoTaskAssembly>$(MSBuildThisFileDirectory)bin\publish\RepoTasks.dll</_RepoTaskAssembly>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<UsingTask TaskName="RepoTasks.AddArchiveReferences" AssemblyFile="$(_RepoTaskAssembly)" />
|
|
||||||
<UsingTask TaskName="RepoTasks.AddMetapackageReferences" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.AddMetapackageReferences" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.AnalyzeBuildGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.AnalyzeBuildGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CheckExpectedPackagesExist" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CheckExpectedPackagesExist" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CheckRepoGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CheckRepoGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CheckVersionOverrides" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CheckVersionOverrides" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.CreateLzma" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.CreateLzma" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.ExtractLzma" AssemblyFile="$(_RepoTaskAssembly)" />
|
|
||||||
<UsingTask TaskName="RepoTasks.FilterLzmaContent" AssemblyFile="$(_RepoTaskAssembly)" />
|
|
||||||
<UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.GenerateRestoreSourcesPropsFile" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.GenerateSubmoduleGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.GenerateSubmoduleGraph" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
|
<UsingTask TaskName="RepoTasks.GetDocXmlFiles" 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)" />
|
||||||
<UsingTask TaskName="RepoTasks.ProcessSharedFrameworkDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.ProcessSharedFrameworkDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.ResolveSymbolsRecursivePath" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.ResolveSymbolsRecursivePath" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.TrimDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.TrimDeps" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
<UsingTask TaskName="RepoTasks.UpdatePreviousArchiveManifest" AssemblyFile="$(_RepoTaskAssembly)" />
|
|
||||||
<UsingTask TaskName="RepoTasks.VerifyCoherentVersions" AssemblyFile="$(_RepoTaskAssembly)" />
|
<UsingTask TaskName="RepoTasks.VerifyCoherentVersions" AssemblyFile="$(_RepoTaskAssembly)" />
|
||||||
|
|
||||||
<!-- tools from dotnet-buildtools -->
|
<!-- tools from dotnet-buildtools -->
|
||||||
|
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
// 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.Linq;
|
|
||||||
using System.Xml;
|
|
||||||
using Microsoft.Build.Framework;
|
|
||||||
using Microsoft.Build.Utilities;
|
|
||||||
using NuGet.Versioning;
|
|
||||||
using RepoTasks.Utilities;
|
|
||||||
|
|
||||||
namespace RepoTasks
|
|
||||||
{
|
|
||||||
public class UpdatePreviousArchiveManifest : Task
|
|
||||||
{
|
|
||||||
[Required]
|
|
||||||
public string OutputPath { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public ITaskItem[] Contents { get; set; }
|
|
||||||
|
|
||||||
public override bool Execute()
|
|
||||||
{
|
|
||||||
var xmlDoc = new XmlDocument();
|
|
||||||
|
|
||||||
// Project
|
|
||||||
var projectElement = xmlDoc.CreateElement("Project");
|
|
||||||
|
|
||||||
// Items
|
|
||||||
var itemGroupElement = xmlDoc.CreateElement("ItemGroup");
|
|
||||||
|
|
||||||
foreach (var content in Contents)
|
|
||||||
{
|
|
||||||
var contentElement = xmlDoc.CreateElement("PreviousLzmaContents");
|
|
||||||
contentElement.SetAttribute("Include", $"{content.GetRecursiveDir()}{content.GetFileName()}{content.GetExtension()}");
|
|
||||||
itemGroupElement.AppendChild(contentElement);
|
|
||||||
// Recursive will be lost during round tripping using a props file. To fix this, set the RecursiveDir to RelativeDir.
|
|
||||||
// This can only be done in a task as MSBuild prevents overwritting reserved metadata.
|
|
||||||
}
|
|
||||||
|
|
||||||
projectElement.AppendChild(itemGroupElement);
|
|
||||||
|
|
||||||
// Save updated file
|
|
||||||
xmlDoc.AppendChild(projectElement);
|
|
||||||
xmlDoc.Save(OutputPath);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
// 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 Microsoft.Build.Framework;
|
|
||||||
|
|
||||||
namespace RepoTasks.Utilities
|
|
||||||
{
|
|
||||||
public static class ITaskItemExtensions
|
|
||||||
{
|
|
||||||
public static string GetRecursiveDir(this ITaskItem item)
|
|
||||||
=> item.GetMetadata("RecursiveDir");
|
|
||||||
public static string GetFileName(this ITaskItem item)
|
|
||||||
=> item.GetMetadata("Filename");
|
|
||||||
public static string GetExtension(this ITaskItem item)
|
|
||||||
=> item.GetMetadata("Extension");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -54,23 +54,28 @@ foreach ($package in $remoteDeps.SelectNodes('//Package')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (-not $NoCommit) {
|
||||||
|
$currentBranch = Invoke-Block { & git rev-parse --abbrev-ref HEAD }
|
||||||
|
|
||||||
$currentBranch = Invoke-Block { & git rev-parse --abbrev-ref HEAD }
|
$destinationBranch = "dotnetbot/UpdateDeps"
|
||||||
|
Invoke-Block { & git checkout -tb $destinationBranch "origin/$GithubUpstreamBranch" }
|
||||||
$destinationBranch = "dotnetbot/UpdateDeps"
|
}
|
||||||
Invoke-Block { & git checkout -tb $destinationBranch "origin/$GithubUpstreamBranch" }
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$updatedVars = UpdateVersions $variables $dependencies $depsPath
|
$updatedVars = UpdateVersions $variables $dependencies $depsPath
|
||||||
|
|
||||||
if (-not $NoCommit) {
|
if ($NoCommit) {
|
||||||
$body = CommitUpdatedVersions $updatedVars $dependencies $depsPath
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
if ($body) {
|
$body = CommitUpdatedVersions $updatedVars $dependencies $depsPath
|
||||||
CreatePR "aspnet" $GithubUsername $GithubUpstreamBranch $destinationBranch $body $GithubToken
|
|
||||||
}
|
if ($body) {
|
||||||
|
CreatePR "aspnet" $GithubUsername $GithubUpstreamBranch $destinationBranch $body $GithubToken
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
Invoke-Block { & git checkout $currentBranch }
|
if (-not $NoCommit) {
|
||||||
|
Invoke-Block { & git checkout $currentBranch }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ function Invoke-Block([scriptblock]$cmd) {
|
||||||
# - $?: did the powershell script block throw an error
|
# - $?: did the powershell script block throw an error
|
||||||
# - $lastexitcode: did a windows command executed by the script block end in error
|
# - $lastexitcode: did a windows command executed by the script block end in error
|
||||||
if ((-not $?) -or ($lastexitcode -ne 0)) {
|
if ((-not $?) -or ($lastexitcode -ne 0)) {
|
||||||
if(($error -ne $null))
|
if ($error -ne $null)
|
||||||
{
|
{
|
||||||
Write-Warning $error[0]
|
Write-Warning $error[0]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="..\Archive.props" />
|
||||||
|
|
||||||
|
<!-- Same as Archive.CiServer.Patch, but it includes .nupkg files for compatibility with 1.x versions of the .NET Core SDK -->
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFileName>nuGetPackagesArchive-ci-server-compat-$(PackageVersion).patch.zip</TargetFileName>
|
||||||
|
<IsIncremental>true</IsIncremental>
|
||||||
|
<IncludeXmlDocs>false</IncludeXmlDocs>
|
||||||
|
<IncludeNupkgFiles>true</IncludeNupkgFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="..\Archive.targets" />
|
||||||
|
</Project>
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,13 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="..\Archive.props" />
|
||||||
|
|
||||||
|
<!-- Same as Archive.CiServer, but in only includes files which have not previously been included in a stable release. -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFileName>nuGetPackagesArchive-ci-server-$(PackageVersion).patch.zip</TargetFileName>
|
||||||
|
<IsIncremental>true</IsIncremental>
|
||||||
|
<IncludeXmlDocs>false</IncludeXmlDocs>
|
||||||
|
<IncludeNupkgFiles>false</IncludeNupkgFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="..\Archive.targets" />
|
||||||
|
</Project>
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,14 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="..\Archive.props" />
|
||||||
|
|
||||||
|
<!-- This archive is optimized for CI server environments which do not need .nupkg files or xml docs, such as Docker. -->
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFileName>nuGetPackagesArchive-ci-server-$(PackageVersion).zip</TargetFileName>
|
||||||
|
<IsIncremental>false</IsIncremental>
|
||||||
|
<IncludeXmlDocs>false</IncludeXmlDocs>
|
||||||
|
<IncludeNupkgFiles>false</IncludeNupkgFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="..\Archive.targets" />
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="..\Archive.props" />
|
||||||
|
|
||||||
|
<!-- This archive is passed along to dotnet/cli for use with the .NET Core CLI first run experience. -->
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFileName>nuGetPackagesArchive-$(PackageVersion).lzma</TargetFileName>
|
||||||
|
<IsIncremental>false</IsIncremental>
|
||||||
|
<IncludeXmlDocs>true</IncludeXmlDocs>
|
||||||
|
<IncludeNupkgFiles>true</IncludeNupkgFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="..\Archive.targets" />
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||||
|
|
||||||
|
<Import Project="..\..\build\tasks\RepoTasks.tasks" />
|
||||||
|
<UsingTask TaskName="Microsoft.AspNetCore.BuildTools.ZipArchive" AssemblyFile="$(_BuildToolsAssembly)" Condition=" '$(_BuildToolsAssembly)' != '' "/>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<!-- Required to make /t:Restore happy, but not really used for anything else. -->
|
||||||
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||||
|
|
||||||
|
<!-- Default items -->
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="$(MSBuildThisFileDirectory)Scenario.*\Scenario.*.*proj" ReferenceOutputAssembly="false" />
|
||||||
|
<ArchiveBaseline Include="$(MSBuildProjectDirectory)\ArchiveBaseline.*.txt" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Targets items -->
|
||||||
|
|
||||||
|
<Target Name="PrepareOutputPaths">
|
||||||
|
<MakeDir Directories="$(TargetDir)" />
|
||||||
|
<Delete Files="$(TargetPath)" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<CollectInputsDependsOn Condition=" '$(IncludeNupkgFiles)' == 'false' ">$(CollectInputsDependsOn);CollectNupkgExclusions</CollectInputsDependsOn>
|
||||||
|
<CollectInputsDependsOn Condition=" '$(IncludeXmlDocs)' == 'false' ">$(CollectInputsDependsOn);CollectXmlExclusions</CollectInputsDependsOn>
|
||||||
|
<CollectInputsDependsOn Condition=" '$(IsIncremental)' == 'true' ">$(CollectInputsDependsOn);CollectBaselineExclusions</CollectInputsDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="CollectNupkgExclusions">
|
||||||
|
<ItemGroup>
|
||||||
|
<ArchiveExclusions Include="$(RestorePackagesPath)**\*.nupkg" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CollectXmlExclusions">
|
||||||
|
<ItemGroup>
|
||||||
|
<_ArchiveItemXml Include="$(RestorePackagesPath)**\*.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Message Text="Found @(_ArchiveItemXml->Count()) xml files that might be docxml" />
|
||||||
|
|
||||||
|
<RepoTasks.GetDocXmlFiles Files="@(_ArchiveItemXml)">
|
||||||
|
<Output TaskParameter="XmlDocFiles" ItemName="ArchiveExclusions" />
|
||||||
|
</RepoTasks.GetDocXmlFiles>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CollectBaselineExclusions">
|
||||||
|
<ReadLinesFromFile File="%(ArchiveBaseline.Identity)" Condition="'%(ArchiveBaseline.Identity)' != ''">
|
||||||
|
<Output TaskParameter="Lines" ItemName="PreviousArchiveItem" />
|
||||||
|
</ReadLinesFromFile>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ArchiveExclusions Include="$(RestorePackagesPath)%(PreviousArchiveItem.Identity)" Condition=" '%(PreviousArchiveItem.Identity)' != '' " />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CollectInputs" DependsOnTargets="$(CollectInputsDependsOn)">
|
||||||
|
<ItemGroup>
|
||||||
|
<ArchiveItem Include="$(RestorePackagesPath)**\*" Exclude="@(ArchiveExclusions)" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Message Text="Found @(ArchiveItem->Count()) files to put in the CI package archive" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CreateArchive" Outputs="$(TargetPath)">
|
||||||
|
<Warning Text="No files were found to put into $(TargetPath)"
|
||||||
|
Condition="@(ArchiveItem->Count()) == 0 AND '$(IsIncremental)' == 'true' " />
|
||||||
|
|
||||||
|
<Error Text="No files were found to put into $(TargetPath)"
|
||||||
|
Condition="@(ArchiveItem->Count()) == 0 AND '$(IsIncremental)' != 'true' " />
|
||||||
|
|
||||||
|
<ZipArchive
|
||||||
|
File="$(TargetPath)"
|
||||||
|
SourceFiles="@(ArchiveItem)"
|
||||||
|
WorkingDirectory="$(RestorePackagesPath)"
|
||||||
|
Overwrite="true"
|
||||||
|
Condition="@(ArchiveItem->Count()) != 0 AND '$(MSBuildProjectExtension)' == '.zipproj'" />
|
||||||
|
|
||||||
|
<RepoTasks.CreateLzma
|
||||||
|
OutputPath="$(TargetPath)"
|
||||||
|
Sources="$(RestorePackagesPath)"
|
||||||
|
Condition="@(ArchiveItem->Count()) != 0 AND '$(MSBuildProjectExtension)' == '.lzmaproj'" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CheckForInvalidConfig">
|
||||||
|
<Error Text=".lzmaproj currently only supports zipping an entire directory with everything in it."
|
||||||
|
Condition="'$(MSBuildProjectExtension)' == '.lzmaproj' AND ( '$(IsIncremental)' == 'true' OR '$(IncludeNupkgFiles)' == 'false' OR '$(IncludeXmlDocs)' == 'false' ) "/>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CheckForPreviousReleaseArchiveBaseline" Condition=" '$(AspNetCorePatchVersion)' != '0' AND '$(IsIncremental)' == 'true' ">
|
||||||
|
<PropertyGroup>
|
||||||
|
<PreviousStableVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$([MSBuild]::Subtract($(AspNetCorePatchVersion), 1))</PreviousStableVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Error Text="The ArchiveBaseline for previous release (v$(PreviousStableVersion)) could not be found. This is required to build the incremental archives. See instructions in $(MSBuildThisFileDirectory)ZipManifestGenerator\README.md"
|
||||||
|
Condition="! Exists('$(MSBuildProjectDirectory)\ArchiveBaseline.$(PreviousStableVersion).txt')" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="Build"
|
||||||
|
DependsOnTargets="PrepareOutputPaths;CheckForInvalidConfig;CheckForPreviousReleaseArchiveBaseline;CollectInputs;CreateArchive"
|
||||||
|
Outputs="$(TargetPath)" />
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="..\..\Directory.Build.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<!-- Don't restore from any fallback folder -->
|
||||||
|
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
|
||||||
|
<!-- Projects in this folder should be explicit about the packages they reference -->
|
||||||
|
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||||
|
|
||||||
|
<RestorePackagesPath>$([MSBuild]::NormalizePath('$(RepositoryRoot)obj\pkgs\'))</RestorePackagesPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<Project />
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NETStandard.Library" Version="$(NETStandardLibrary20PackageVersion)" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||||
|
<!-- aspnet/BuildTools#662 Don't police what version of NetCoreApp we use -->
|
||||||
|
<NETCoreAppMaximumVersion>99.9</NETCoreAppMaximumVersion>
|
||||||
|
<MaxImplicitVersion>2.2.0</MaxImplicitVersion>
|
||||||
|
<!-- Use pre-release versions up until 2.1.0, then don't lift higher than "2.1.0" -->
|
||||||
|
<MicrosoftNETCoreAppPackageVersion Condition="$(MicrosoftNETCoreApp22PackageVersion.StartsWith('$(MaxImplicitVersion)-'))">$(MicrosoftNETCoreApp22PackageVersion)</MicrosoftNETCoreAppPackageVersion>
|
||||||
|
<MicrosoftNETCoreAppPackageVersion>$([MSbuild]::ValueOrDefault('$(MicrosoftNETCoreAppPackageVersion)','$(MaxImplicitVersion)'))</MicrosoftNETCoreAppPackageVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||||
|
<!-- aspnet/BuildTools#662 Don't police what version of NetCoreApp we use -->
|
||||||
|
<NETCoreAppMaximumVersion>99.9</NETCoreAppMaximumVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.App" Version="$(MicrosoftAspNetCoreAppPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.All" Version="$(MicrosoftAspNetCoreAllPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="$(MicrosoftAspNetCoreAuthenticationAzureADUIPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="$(MicrosoftAspNetCoreAuthenticationAzureADB2CUIPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Contracts" Version="$(MicrosoftVisualStudioWebCodeGenerationContractsPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Core" Version="$(MicrosoftVisualStudioWebCodeGenerationCorePackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="$(MicrosoftVisualStudioWebCodeGenerationDesignPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore" Version="$(MicrosoftVisualStudioWebCodeGenerationEntityFrameworkCorePackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Templating" Version="$(MicrosoftVisualStudioWebCodeGenerationTemplatingPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="$(MicrosoftVisualStudioWebCodeGenerationUtilsPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="$(MicrosoftVisualStudioWebCodeGenerationPackageVersion)" />
|
||||||
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Version="$(MicrosoftVisualStudioWebCodeGeneratorsMvcPackageVersion)" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
// 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.IO.Compression;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ZipManifestGenerator
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
private static void PrintUsage()
|
||||||
|
{
|
||||||
|
Console.WriteLine(@"
|
||||||
|
Usage: <ZIP> <OUTPUT>
|
||||||
|
|
||||||
|
<ZIP> A file path or URL to the ZIP file.
|
||||||
|
<OUTPUT> The output file path for the ZIP manifest file.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task<int> Main(string[] args)
|
||||||
|
{
|
||||||
|
if (args.Length != 2)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine("Invalid arguments");
|
||||||
|
PrintUsage();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var zipPath = args[0];
|
||||||
|
var manifestOutputPath = args[1];
|
||||||
|
|
||||||
|
var shouldCleanupZip = false;
|
||||||
|
|
||||||
|
if (zipPath.StartsWith("http", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
shouldCleanupZip = true;
|
||||||
|
var url = zipPath;
|
||||||
|
Console.WriteLine($"log: Downloading {url}");
|
||||||
|
zipPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".zip");
|
||||||
|
var response = await new HttpClient().GetAsync(url);
|
||||||
|
response.EnsureSuccessStatusCode();
|
||||||
|
|
||||||
|
using (var outStream = File.Create(zipPath))
|
||||||
|
{
|
||||||
|
var responseStream = await response.Content.ReadAsStreamAsync();
|
||||||
|
await responseStream.CopyToAsync(outStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Console.WriteLine($"log: Generating manifest in {manifestOutputPath}");
|
||||||
|
|
||||||
|
using (var zipStream = File.OpenRead(zipPath))
|
||||||
|
using (var zip = new ZipArchive(zipStream, ZipArchiveMode.Read))
|
||||||
|
using (var manifest = File.Create(manifestOutputPath))
|
||||||
|
using (var writer = new StreamWriter(manifest))
|
||||||
|
{
|
||||||
|
foreach (var file in zip.Entries.OrderBy(_ => _.FullName))
|
||||||
|
{
|
||||||
|
writer.WriteLine(file.FullName.Replace("/", "\\"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (shouldCleanupZip)
|
||||||
|
{
|
||||||
|
File.Delete(zipPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
ZipManifestGenerator
|
||||||
|
---------
|
||||||
|
|
||||||
|
This console app is used to generate the list of files in a zip archive.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
```
|
||||||
|
dotnet run ./archive.zip files.txt
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
|
<SignAssembly>false</SignAssembly>
|
||||||
|
<PublicSign>false</PublicSign>
|
||||||
|
<LangVersion>7.1</LangVersion>
|
||||||
|
<DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.26124.0
|
||||||
|
MinimumVisualStudioVersion = 15.0.26124.0
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZipManifestGenerator", "ZipManifestGenerator.csproj", "{4706B37C-3B37-4331-84FC-107657BDEC4E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{4706B37C-3B37-4331-84FC-107657BDEC4E}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
Loading…
Reference in New Issue