aspnetcore/build/Templating.targets

79 lines
3.2 KiB
XML

<Project>
<PropertyGroup>
<TemplatingProjectRoot>$(MSBuildThisFileDirectory)..\modules\Templating\</TemplatingProjectRoot>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);GetTemplateArtifactInfo</GetArtifactInfoDependsOn>
<TestDependsOn>$(TestDependsOn);TestTemplates</TestDependsOn>
<InstallSharedRuntimeFromPreviousBuild>false</InstallSharedRuntimeFromPreviousBuild>
</PropertyGroup>
<PropertyGroup>
<TemplateProjProperties>
RepositoryRoot=$(TemplatingProjectRoot);
BuildNumber=$(BuildNumber);
Configuration=$(Configuration);
IsFinalBuild=$(IsFinalBuild);
</TemplateProjProperties>
</PropertyGroup>
<Target Name="GetTemplateArtifactInfo">
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="GetArtifactInfo"
Properties="$(TemplateProjProperties);DesignTimeBuild=true">
<Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" />
</MSBuild>
</Target>
<Target Name="BuildTemplates" DependsOnTargets="GeneratePropsFiles">
<PropertyGroup>
<_BuildTemplateProjProperties>
$(TemplateProjProperties);
SkipAspNetCoreRuntimeInstall=true;
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
SkipTests=true;
</_BuildTemplateProjProperties>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="CleanArtifacts;Build"
Properties="$(_BuildTemplateProjProperties)" />
<ItemGroup>
<TemplateArtifacts Include="$(TemplatingProjectRoot)artifacts\build\*" />
</ItemGroup>
<Copy SourceFiles="@(TemplateArtifacts)" DestinationFolder="$(BuildDir)" />
</Target>
<!--
aspnet/Universe doesn't support building the shared framework on one machine, so these tests must be manually enabled on CI by copying
the output of the SharedFx.targets build to test machines.
-->
<Target Name="InstallSharedRuntimeFromPreviousBuild" Condition="'$(InstallSharedRuntimeFromPreviousBuild)' == 'true'" BeforeTargets="InstallDotNet">
<ItemGroup>
<AspNetCoreRuntime Include="$(PackageVersion)" Feed="$(AspNetCoreFxFeed)" />
</ItemGroup>
</Target>
<Target Name="TestTemplates" DependsOnTargets="InstallDotNet;BuildTemplates">
<!-- To enable this test, either publish the shared runtime to https://dotnetcli.blob.core.windows.net/dotnet, or override the install location by setting AspNetCoreFxFeed. -->
<Warning Text="Skipping template tests because InstallSharedRuntimeFromPreviousBuild != 'true'." Condition="'$(InstallSharedRuntimeFromPreviousBuild)' != 'true'"/>
<PropertyGroup>
<_TestTemplateProjProperties>
$(TemplateProjProperties);
SkipAspNetCoreRuntimeInstall=true;
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
NoBuild=true;
</_TestTemplateProjProperties>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="Build"
Properties="$(_TestTemplateProjProperties)"
Condition="'$(InstallSharedRuntimeFromPreviousBuild)' == 'true'" />
</Target>
</Project>