98 lines
4.2 KiB
XML
98 lines
4.2 KiB
XML
<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>
|