120 lines
6.3 KiB
XML
120 lines
6.3 KiB
XML
<Project>
|
|
<Import Project="$(RepositoryRoot)\build\dependencies.props" />
|
|
|
|
<PropertyGroup>
|
|
<_SdkVersion>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName('$(MSBuildExtensionsPath)'))))</_SdkVersion>
|
|
<TestDotNetPath>$(RepositoryRoot).test-dotnet\</TestDotNetPath>
|
|
<AppsArtifactDirectory>$(RepositoryRoot)artifacts\apps</AppsArtifactDirectory>
|
|
<SiteExtensionWorkingDirectory>$(TestDotNetPath)extension\</SiteExtensionWorkingDirectory>
|
|
<SiteExtensionOutputDirectory>$(RepositoryRoot)artifacts\build</SiteExtensionOutputDirectory>
|
|
<TestProjectDirectory>$(RepositoryRoot)\test\Microsoft.AspNetCore.AzureAppServices.FunctionalTests\</TestProjectDirectory>
|
|
<SiteExtensionFeed Condition="$(SiteExtensionFeed) == ''">https://dotnet.myget.org/F/aspnetcore-ci-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="_AddSiteExtensionRuntime">
|
|
|
|
<ItemGroup>
|
|
<DotNetCoreSdk Include="$(_SdkVersion)" InstallDir="$(SiteExtensionWorkingDirectory)" Arch="x86" />
|
|
<DotNetCoreRuntime
|
|
Include="$(MicrosoftNETCoreApp21PackageVersion)"
|
|
InstallDir="$(SiteExtensionWorkingDirectory)"
|
|
Arch="x86"
|
|
Feed="$(DotNetAssetRootUrl)"
|
|
FeedCredential="$(DotNetAssetRootAccessTokenSuffix)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="BuildSiteExtension" DependsOnTargets="_CleanSiteExtension;_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
|
|
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)" />
|
|
|
|
<!-- Workaround for nuget filtering out .nupkg files by default -->
|
|
<Copy SourceFiles="$(ArtifactDependencyLocation)\%(BundledTemplate.Identity).%(Version).nupkg" DestinationFiles="$(SiteExtensionWorkingDirectory)\sdk\$(_SdkVersion)\Templates\%(BundledTemplate.Identity).%(Version).nupkg_" />
|
|
<Copy SourceFiles="$(ArtifactDependencyLocation)\nuGetPackagesArchive-$(PackageVersion).lzma" DestinationFiles="$(SiteExtensionWorkingDirectory)\sdk\$(_SdkVersion)\nuGetPackagesArchive.lzma" />
|
|
|
|
<UnzipArchive File="$(ArtifactDependencyLocation)\aspnetcore-runtime-internal-$(PackageVersion)-win-x86.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" />
|
|
|
|
<MSBuild Projects="%(SiteExtensions.Identity)"
|
|
Targets="Restore"
|
|
Properties="BuildNumber=$(BuildNumber)" />
|
|
|
|
<MSBuild Projects="%(SiteExtensions.Identity)"
|
|
Targets="Pack"
|
|
Properties="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>
|