142 lines
7.4 KiB
XML
142 lines
7.4 KiB
XML
<Project>
|
|
<Import Project="PackSiteExtension.targets" />
|
|
|
|
<PropertyGroup>
|
|
<ComposeSdk Condition="$(SITE_EXTENSION_SDK_VERSION) == ''">True</ComposeSdk>
|
|
<_SdkVersion>$(SITE_EXTENSION_SDK_VERSION)</_SdkVersion>
|
|
<_SdkVersion Condition="'$(_SdkVersion)' == ''">$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName('$(MSBuildExtensionsPath)'))))</_SdkVersion>
|
|
<_SdkFeed>$(SITE_EXTENSION_SDK_FEED)</_SdkFeed>
|
|
<_SdkFeed Condition="'$(_SdkFeed)' == ''">$(DefaultDotNetAssetFeed)</_SdkFeed>
|
|
<TestDotNetPath>$(RepositoryRoot).test-dotnet\</TestDotNetPath>
|
|
<AppsArtifactDirectory>$(RepositoryRoot)artifacts\apps</AppsArtifactDirectory>
|
|
<SiteExtensionWorkingDirectory>$(TestDotNetPath)extension\$(SiteExtensionArch)\</SiteExtensionWorkingDirectory>
|
|
<SiteExtensionOutputDirectory>$(RepositoryRoot)artifacts\build</SiteExtensionOutputDirectory>
|
|
<TestProjectDirectory>$(RepositoryRoot)\test\Microsoft.AspNetCore.AzureAppServices.FunctionalTests\</TestProjectDirectory>
|
|
<SiteExtensionFeed Condition="$(SiteExtensionFeed) == ''">https://dotnet.myget.org/F/aspnetcore-dev/</SiteExtensionFeed>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="_AddTestRuntimes">
|
|
<ItemGroup>
|
|
<DotNetCoreSdk Include="2.0.0" InstallDir="$(TestDotNetPath)2.0\" FallbackPackageCache="True" />
|
|
<DotNetCoreSdk Include="$(_SdkVersion)" InstallDir="$(TestDotNetPath)latest\" FallbackPackageCache="True" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="_CleanSiteExtension">
|
|
<RemoveDir Directories="$(SiteExtensionWorkingDirectory)" Condition="Exists($(SiteExtensionWorkingDirectory))" />
|
|
</Target>
|
|
|
|
<Target Name="_AddSiteExtensionSdk">
|
|
<ItemGroup>
|
|
<DotNetCoreSdk Include="$(_SdkVersion)" Feed="$(_SdkFeed)" InstallDir="$(SiteExtensionWorkingDirectory)" Arch="$(SiteExtensionArch)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="_AddSiteExtensionRuntime">
|
|
<ItemGroup>
|
|
<DotNetCoreRuntime
|
|
Include="$(MicrosoftNETCoreApp21PackageVersion)"
|
|
InstallDir="$(SiteExtensionWorkingDirectory)"
|
|
Arch="$(SiteExtensionArch)"
|
|
Feed="$(DotNetAssetRootUrl)"
|
|
FeedCredential="$(DotNetAssetRootAccessTokenSuffix)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="ComposeSiteExtensions" Condition="'$(ComposeSdk)' == 'True'" DependsOnTargets="_AddSiteExtensionSdk;_AddSiteExtensionRuntime;InstallDotNet">
|
|
<ItemGroup>
|
|
<RuntimeArchiveItems Include="$(RuntimeArchives)" />
|
|
<DotNetCacheArchiveItems Include="$(DotNetCacheArchives)" />
|
|
|
|
<_CleanupFiles
|
|
Include="$(SiteExtensionWorkingDirectory)additionalDeps;$(SiteExtensionWorkingDirectory)store" />
|
|
|
|
<_CleanupFiles
|
|
Include="$([System.IO.Directory]::GetDirectories('$(SiteExtensionWorkingDirectory)shared\Microsoft.NETCore.App\'))"
|
|
Exclude="$(SiteExtensionWorkingDirectory)shared\Microsoft.NETCore.App\$(MicrosoftNETCoreApp21PackageVersion)" />
|
|
|
|
<_CleanupFiles
|
|
Condition="Exists('$(SiteExtensionWorkingDirectory)shared\Microsoft.AspNetCore.App\')"
|
|
Include="$([System.IO.Directory]::GetDirectories('$(SiteExtensionWorkingDirectory)shared\Microsoft.AspNetCore.App\'))"
|
|
Exclude="$(SiteExtensionWorkingDirectory)shared\Microsoft.AspNetCore.App\$(PackageVersion)" />
|
|
|
|
<_CleanupFiles
|
|
Include="$([System.IO.Directory]::GetDirectories('$(SiteExtensionWorkingDirectory)shared\Microsoft.AspNetCore.All\'))"
|
|
Exclude="$(SiteExtensionWorkingDirectory)shared\Microsoft.AspNetCore.All\$(PackageVersion)" />
|
|
|
|
<_CleanupFiles
|
|
Include="$([System.IO.Directory]::GetDirectories('$(SiteExtensionWorkingDirectory)host\fxr'))"
|
|
Exclude="$(SiteExtensionWorkingDirectory)host\fxr\$(MicrosoftNETCoreApp21PackageVersion)" />
|
|
|
|
<BundledTemplate Include="Microsoft.DotNet.Web.ItemTemplates" Version="$(PackageVersion)" />
|
|
<BundledTemplate Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" Version="$(PackageVersion)" />
|
|
<BundledTemplate Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Version="$(PackageVersion)" />
|
|
</ItemGroup>
|
|
|
|
<Message Text="Removing %(_CleanupFiles.Identity)" Importance="High" />
|
|
<RemoveDir Directories="@(_CleanupFiles)" />
|
|
|
|
<UnzipArchive File="$(ArtifactDependencyLocation)\aspnetcore-runtime-internal-$(PackageVersion)-win-$(SiteExtensionArch).zip" Destination="$(SiteExtensionWorkingDirectory)" Overwrite="true" />
|
|
<UnzipArchive File="%(RuntimeArchiveItems.Identity)" Destination="$(SiteExtensionWorkingDirectory)" Condition="'$(RuntimeArchives)' != ''" Overwrite="true" />
|
|
<UnzipArchive File="%(DotNetCacheArchiveItems.Identity)" Destination="$(SiteExtensionWorkingDirectory)DotNetCache" Condition="'$(DotNetCacheArchives)' != ''" Overwrite="true" />
|
|
|
|
</Target>
|
|
|
|
<Target Name="PrepareSiteExtensionSdk" DependsOnTargets="ComposeSiteExtensions;_AddSiteExtensionSdk;InstallDotNet">
|
|
</Target>
|
|
|
|
<Target Name="PrepareSiteExtensionSdks">
|
|
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="PrepareSiteExtensionSdk" Properties="SiteExtensionArch=x86" />
|
|
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="PrepareSiteExtensionSdk" Properties="SiteExtensionArch=x64" />
|
|
</Target>
|
|
|
|
<Target Name="BuildSiteExtension" DependsOnTargets="_CleanSiteExtension;PrepareSiteExtensionSdks">
|
|
<!-- Strip LZMA from sdk -->
|
|
<Delete Files="$(SiteExtensionWorkingDirectory)\sdk\$(_SdkVersion)\nuGetPackagesArchive.lzma" />
|
|
<MSBuild Projects="%(SiteExtensions.Identity)"
|
|
Targets="Restore"
|
|
Properties="BuildNumber=$(BuildNumber)" />
|
|
|
|
<MSBuild Projects="%(SiteExtensions.Identity)"
|
|
Targets="Pack"
|
|
Properties="%(SiteExtensions.BuildProperties);DotnetHomeDirectory=$(SiteExtensionWorkingDirectory);BuildNumber=$(BuildNumber);PackageOutputPath=$(SiteExtensionOutputDirectory)" />
|
|
|
|
</Target>
|
|
|
|
<Target Name="PushSiteExtension" DependsOnTargets="BuildSiteExtension">
|
|
<ItemGroup>
|
|
<RepositoryNupkgs Include="$(SiteExtensionOutputDirectory)\%(SiteExtensions.PackageName).*.nupkg" />
|
|
</ItemGroup>
|
|
|
|
<PushNuGetPackages
|
|
Packages="@(RepositoryNupkgs)"
|
|
Feed="$(SiteExtensionFeed)"
|
|
ApiKey="$(APIKey)"
|
|
TimeoutSeconds="600"/>
|
|
|
|
</Target>
|
|
|
|
<Target Name="TestSiteExtension" DependsOnTargets="_AddTestRuntimes;InstallDotNet;Restore">
|
|
|
|
<Copy SourceFiles="$(TestProjectDirectory)NuGet.config.template" DestinationFiles="$(RepositoryRoot)artifacts\NuGet.config" />
|
|
<Copy SourceFiles="$(TestProjectDirectory)global.json.template" DestinationFiles="$(RepositoryRoot)artifacts\global.json" />
|
|
<Copy SourceFiles="$(TestProjectDirectory)Directory.Build.props.template" DestinationFiles="$(RepositoryRoot)artifacts\Directory.Build.props" />
|
|
<Copy SourceFiles="$(TestProjectDirectory)Directory.Build.targets.template" DestinationFiles="$(RepositoryRoot)artifacts\Directory.Build.targets" />
|
|
|
|
<Exec Command="%(DotNetCoreSdk.InstallDir)dotnet msbuild /version" WorkingDirectory="$(RepositoryRoot)artifacts\" />
|
|
|
|
<Exec Command="dotnet run" WorkingDirectory="$(TestProjectDirectory)"/>
|
|
|
|
</Target>
|
|
|
|
<Target Name="CleanArtifactsApplications" BeforeTargets="CleanArtifacts" >
|
|
<!--
|
|
git deploy creates read-only files which msbuild is unable to remove
|
|
NOTE: we run tests only on windows
|
|
-->
|
|
<Exec Command="rmdir /S /Q "$(AppsArtifactDirectory)"" Condition="Exists($(AppsArtifactDirectory))" />
|
|
<RemoveDir Directories="$(SiteExtensionOutputDirectory)" Condition="Exists($(SiteExtensionOutputDirectory))" />
|
|
</Target>
|
|
|
|
</Project>
|