2019-04-15 11:24:42 -07:00
<Project >
<PropertyGroup >
<CopyBuildOutputToOutputDirectory > false</CopyBuildOutputToOutputDirectory>
<CopyOutputSymbolsToOutputDirectory > false</CopyOutputSymbolsToOutputDirectory>
<OutputType > Library</OutputType>
<GenerateDependencyFile > false</GenerateDependencyFile>
<GenerateAssemblyInfo > false</GenerateAssemblyInfo>
<ResolvePackageDependenciesForBuild > false</ResolvePackageDependenciesForBuild>
<NonShipping > true</NonShipping>
<NoStdLib > true</NoStdLib>
<ProducesNoOutput > true</ProducesNoOutput>
</PropertyGroup>
<Import Project= "Sdk.props" Sdk= "Microsoft.NET.Sdk" />
<PropertyGroup >
<LanguageTargets > $(MSBuildToolsPath)\Microsoft.CSharp.targets</LanguageTargets>
<IsPackable > false</IsPackable>
<DeterministicSourcePaths > false</DeterministicSourcePaths>
<TargetFramework > $(CoreSdkTargetFramework)</TargetFramework>
</PropertyGroup>
<PropertyGroup >
<RedistLayoutPath > $(ArtifactsBinDir)redist\$(Configuration)\dotnet\</RedistLayoutPath>
2019-04-17 14:26:45 -07:00
<DotnetToTestPath > $(ArtifactsBinDir)redist\$(Configuration)\dotnet-with-previous-runtimes\</DotnetToTestPath>
2019-05-15 18:09:01 -07:00
<TestExecutionDirectory > $([MSBuild]::NormalizePath($(ArtifactsTmpDir), 'dotnetSdkTests'))</TestExecutionDirectory>
2019-09-10 13:41:34 -07:00
<DOTNET_CLI_HOME > $(ArtifactsTmpDir)DOTNET_CLI_HOME\</DOTNET_CLI_HOME>
2019-04-15 11:24:42 -07:00
</PropertyGroup>
<ItemGroup >
<SdkTest Include= "Build" />
<SdkTest Include= "Clean" />
<SdkTest Include= "Pack" />
<SdkTest Include= "Rebuild" />
<SdkTest Include= "Restore" />
<SdkTest Include= "ToolPack" />
</ItemGroup>
2020-02-05 00:33:57 +00:00
<!-- Disable Publish tests on Windows x86 until we figure out why they were timing out
https://github.com/dotnet/core-sdk/issues/6285 -->
<ItemGroup Condition= "('$(OS)' != 'Windows_NT') Or ('$(Architecture)' != 'x86')" >
<SdkTest Include= "Publish" />
</ItemGroup>
2019-04-23 16:53:04 -07:00
<Target Name= "GetRuntimesToInstall" >
<PropertyGroup >
<Supports1xRuntimes > true</Supports1xRuntimes>
</PropertyGroup>
<ReadLinesFromFile File= "/etc/os-release"
Condition="'$(OS)' != 'Windows_NT'">
<Output TaskParameter= "Lines" PropertyName= "OsReleaseContents" />
</ReadLinesFromFile>
2019-05-30 09:56:24 -07:00
<!-- Set OsReleaseContents to Windows to make later comparisons easier -->
<PropertyGroup Condition= "'$(OS)' == 'Windows_NT'" >
<OsReleaseContents > Windows</OsReleaseContents>
</PropertyGroup>
2019-04-23 16:53:04 -07:00
<PropertyGroup Condition= "$(OsReleaseContents.Contains('NAME=%22Ubuntu%22'))" >
<Supports1xRuntimes Condition= "$(OsReleaseContents.Contains('VERSION_ID=%2218.04%22'))" > false</Supports1xRuntimes>
</PropertyGroup>
2019-05-16 22:41:37 -07:00
<PropertyGroup Condition= "$(OsReleaseContents.Contains('NAME=Fedora'))" >
<Supports1xRuntimes > false</Supports1xRuntimes>
</PropertyGroup>
2019-10-30 11:44:13 -07:00
<PropertyGroup Condition= "$(OsReleaseContents.Contains('NAME=%22Debian'))" >
<Supports1xRuntimes > false</Supports1xRuntimes>
</PropertyGroup>
2019-05-16 22:41:37 -07:00
<PropertyGroup Condition= "$(OsReleaseContents.Contains('NAME=%22openSUSE Leap%22'))" >
<Supports1xRuntimes > false</Supports1xRuntimes>
</PropertyGroup>
<PropertyGroup Condition= "$(OsReleaseContents.Contains('NAME=%22Alpine Linux%22'))" >
<Supports1xRuntimes > false</Supports1xRuntimes>
</PropertyGroup>
<!-- RHEL 6 does not appear to have the os - release file -->
<PropertyGroup Condition= "'$(OsReleaseContents)' == ''" >
<Supports1xRuntimes > false</Supports1xRuntimes>
</PropertyGroup>
2019-04-23 16:53:04 -07:00
<ItemGroup Condition= "'$(Supports1xRuntimes)' == 'true'" >
<RuntimeVersionToInstall Include= "1.0.5" />
<RuntimeVersionToInstall Include= "1.1.2" />
</ItemGroup>
<ItemGroup >
<RuntimeVersionToInstall Include= "2.1.0" />
2019-05-16 18:24:45 -07:00
<RuntimeVersionToInstall Include= "2.2.5" />
2019-10-17 16:05:17 -07:00
<RuntimeVersionToInstall Include= "3.0.0" />
2019-10-18 14:48:44 -07:00
<RuntimeVersionToInstall Include= "3.1.0-preview1.19506.1" />
2019-04-23 16:53:04 -07:00
</ItemGroup>
</Target>
<Target Name= "SetupLayoutWithPreviousRuntimes" DependsOnTargets= "GetRuntimesToInstall" >
2019-04-17 14:26:45 -07:00
<ItemGroup >
<LayoutFilesToCopyToDotnetToTest Include= "$(RedistLayoutPath)**" />
<LayoutFilesToCopyToDotnetToTest >
<DestinationPath > $(DotnetToTestPath)%(RecursiveDir)%(Filename)%(Extension)</DestinationPath>
</LayoutFilesToCopyToDotnetToTest>
</ItemGroup>
<Copy SourceFiles= "@(LayoutFilesToCopyToDotnetToTest)"
DestinationFiles="@(LayoutFilesToCopyToDotnetToTest->'%(DestinationPath)')"
SkipUnchangedFiles="true"/>
<MSBuild Projects= "$(MSBuildProjectFullPath)"
Targets="InstallRuntimeToLayout"
Properties="RuntimeVersionToInstall=%(RuntimeVersionToInstall.Identity)"
BuildInParallel="false"/>
</Target>
<Target Name= "InstallRuntimeToLayout" >
<PropertyGroup >
<RuntimeTargetDirectory > $(DotnetToTestPath)shared\Microsoft.NETCore.App\$(RuntimeVersionToInstall)</RuntimeTargetDirectory>
</PropertyGroup>
<PropertyGroup Condition= "'$(OS)' == 'Windows_NT'" >
2020-04-08 13:07:50 -07:00
<!-- Set TLS1.2 explicitly before running this. If TLS1.2 isnt' enbabled by default this command may fail in some
scenarios. Waiting on a fix to dotnet-install.ps1 to fix this in the right place. -->
<InstallRuntimeCommand > powershell -NoLogo -NoProfile -ExecutionPolicy ByPass -Command "& {</InstallRuntimeCommand>
<InstallRuntimeCommand > $(InstallRuntimeCommand) [Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls13';</InstallRuntimeCommand>
<InstallRuntimeCommand > $(InstallRuntimeCommand) & '$(DotNetRoot)dotnet-install.ps1'</InstallRuntimeCommand>
2019-04-17 14:26:45 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) -Version $(RuntimeVersionToInstall)</InstallRuntimeCommand>
<InstallRuntimeCommand > $(InstallRuntimeCommand) -InstallDir $(DotnetToTestPath)</InstallRuntimeCommand>
2020-04-08 13:07:50 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) -Runtime 'dotnet'</InstallRuntimeCommand>
<InstallRuntimeCommand Condition= "'$(Architecture)' != ''" > $(InstallRuntimeCommand) -Architecture '$(Architecture)'</InstallRuntimeCommand>
<InstallRuntimeCommand > $(InstallRuntimeCommand) }"</InstallRuntimeCommand>
2019-04-17 14:26:45 -07:00
</PropertyGroup>
<PropertyGroup Condition= "'$(OS)' != 'Windows_NT'" >
2019-04-18 15:34:33 -07:00
<InstallRuntimeCommand > /bin/bash</InstallRuntimeCommand>
2020-04-08 13:07:50 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) "$(DotNetRoot)dotnet-install.sh"</InstallRuntimeCommand>
2019-04-17 14:26:45 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) --version $(RuntimeVersionToInstall)</InstallRuntimeCommand>
2019-04-18 15:34:33 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) --install-dir "$(DotnetToTestPath)"</InstallRuntimeCommand>
2019-04-17 14:26:45 -07:00
<InstallRuntimeCommand > $(InstallRuntimeCommand) --runtime "dotnet"</InstallRuntimeCommand>
2019-05-30 15:38:42 -07:00
<InstallRuntimeCommand Condition= "'$(Architecture)' != ''" > $(InstallRuntimeCommand) --architecture "$(Architecture)"</InstallRuntimeCommand>
2019-04-17 14:26:45 -07:00
</PropertyGroup>
<Exec Command= "$(InstallRuntimeCommand)"
2019-04-18 17:31:11 -07:00
Condition="!Exists($(RuntimeTargetDirectory))"
IgnoreStandardErrorWarningFormat="true"
/>
2019-04-17 14:26:45 -07:00
</Target>
<Target Name= "RunSdkTests" DependsOnTargets= "SetupLayoutWithPreviousRuntimes" >
2019-04-15 11:22:36 -07:00
2019-04-23 15:47:03 -07:00
<!-- Isolate test working directory from higher - level Directory.Build files -->
2019-04-15 11:22:36 -07:00
<Copy SourceFiles= "$(RepoRoot)TestAssets\Directory.Build.props;$(RepoRoot)TestAssets\Directory.Build.targets"
2019-05-15 18:09:01 -07:00
DestinationFolder="$(TestExecutionDirectory)"
2019-04-15 11:22:36 -07:00
SkipUnchangedFiles="true"
/>
2019-04-23 08:54:02 -07:00
2019-05-15 18:09:01 -07:00
<!-- Set up NuGet feeds -->
<PropertyGroup >
<GeneratedNuGetConfig > $(TestExecutionDirectory)\NuGet.config</GeneratedNuGetConfig>
<NugetConfigContents >
< ![CDATA[
<configuration >
<packageSources >
<add key= "dotnet-core" value= "https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
<add key= "dotnet-windowsdesktop" value= "https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json" />
<add key= "aspnet-aspnetcore" value= "https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json" />
<add key= "aspnet-aspnetcore-tooling" value= "https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json" />
<add key= "aspnet-entityframeworkcore" value= "https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json" />
<add key= "aspnet-extensions" value= "https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json" />
</packageSources>
</configuration>
]]>
</NugetConfigContents>
</PropertyGroup>
<WriteLinesToFile File= "$(GeneratedNuGetConfig)"
Lines="$(NugetConfigContents)"
Overwrite="true" />
2019-04-23 08:54:02 -07:00
<!-- Allow test list to be overridden with ToolTestName property -->
<ItemGroup Condition= "'$(ToolTestName)' != ''" >
<SdkTest Remove= "@(SdkTest)" />
<SdkTest Include= "$(ToolTestName)" />
</ItemGroup>
2019-05-20 16:21:14 -07:00
<ItemGroup >
<TestProjectToRun Include= "$(MSBuildProjectFullPath)" >
<AdditionalProperties > ToolTestName=%(SdkTest.Identity)</AdditionalProperties>
</TestProjectToRun>
</ItemGroup>
2019-04-15 11:22:36 -07:00
2019-05-20 16:21:14 -07:00
<MSBuild Projects= "@(TestProjectToRun)"
2019-04-15 11:24:42 -07:00
Targets="RunTestsAsTool"
2019-04-23 13:23:30 -07:00
BuildInParallel="true"
/>
2019-04-15 11:24:42 -07:00
</Target>
<Target Name= "RunTestsAsTool" >
<PropertyGroup >
2019-04-17 14:30:42 -07:00
<ToolCommandName > testSdk$(ToolTestName)</ToolCommandName>
<TestProjectName > Microsoft.NET.$(ToolTestName).Tests</TestProjectName>
2019-04-15 11:24:42 -07:00
<TestLocalToolFolder > $(ArtifactsTmpDir)$(ToolCommandName)\</TestLocalToolFolder>
</PropertyGroup>
<RemoveDir Directories= "$(TestLocalToolFolder)" />
<MakeDir Directories= "$(TestLocalToolFolder)" />
<MakeDir Directories= "$(ArtifactsTestResultsDir)" />
2019-09-09 15:10:06 -07:00
<PropertyGroup Condition= "'$(OS)' == 'Windows_NT'" >
2019-09-09 17:53:06 -07:00
<ToolRunPrefix > $(ToolRunPrefix)set MSBuildSDKsPath=& & </ToolRunPrefix>
<ToolRunPrefix > $(ToolRunPrefix)set DOTNET_HOST_PATH=& & </ToolRunPrefix>
<ToolRunPrefix > $(ToolRunPrefix)set DOTNET_INSTALLDIR=& & </ToolRunPrefix>
2019-09-09 15:10:06 -07:00
</PropertyGroup>
<PropertyGroup Condition= "'$(OS)' != 'Windows_NT'" >
<ToolRunPrefix > $(ToolRunPrefix)unset MSBuildSDKsPath & & </ToolRunPrefix>
<ToolRunPrefix > $(ToolRunPrefix)unset DOTNET_HOST_PATH & & </ToolRunPrefix>
<ToolRunPrefix > $(ToolRunPrefix)unset DOTNET_INSTALLDIR & & </ToolRunPrefix>
</PropertyGroup>
<Exec Command= "$(ToolRunPrefix)dotnet new tool-manifest"
2019-09-10 13:41:34 -07:00
WorkingDirectory="$(TestLocalToolFolder)"
EnvironmentVariables="DOTNET_CLI_HOME=$(DOTNET_CLI_HOME)"/>
2019-04-15 11:24:42 -07:00
2019-04-23 08:54:02 -07:00
<PropertyGroup >
<SdkTestPackageVersion > $(MicrosoftNETSdkPackageVersion)</SdkTestPackageVersion>
<SdkTestPackageFeed > https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</SdkTestPackageFeed>
<InstallToolCommand > dotnet tool install --local $(ToolCommandName)</InstallToolCommand>
<InstallToolCommand > $(InstallToolCommand) --version $(SdkTestPackageVersion)</InstallToolCommand>
<InstallToolCommand > $(InstallToolCommand) --add-source $(SdkTestPackageFeed)</InstallToolCommand>
</PropertyGroup>
2019-09-09 15:10:06 -07:00
<Exec Command= "$(ToolRunPrefix)$(InstallToolCommand)"
2019-09-10 13:41:34 -07:00
WorkingDirectory="$(TestLocalToolFolder)"
EnvironmentVariables="DOTNET_CLI_HOME=$(DOTNET_CLI_HOME)"/>
2019-04-15 11:24:42 -07:00
2019-09-10 13:41:34 -07:00
<!-- <Exec Command="$(ToolRunPrefix)dotnet tool restore"
WorkingDirectory="$(TestLocalToolFolder)"
EnvironmentVariables="DOTNET_CLI_HOME=$(DOTNET_CLI_HOME)"/>-->
2019-04-15 11:24:42 -07:00
<PropertyGroup >
<ResultsXmlPath > $(ArtifactsTestResultsDir)$(TestProjectName).xml</ResultsXmlPath>
<ResultsHtmlPath > $(ArtifactsTestResultsDir)$(TestProjectName).html</ResultsHtmlPath>
<ResultsStdOutPath > $(ArtifactsLogDir)$(TestProjectName).log</ResultsStdOutPath>
<TestArgs > -noautoreporters -noRepoInference</TestArgs>
2019-04-17 14:26:45 -07:00
<TestArgs > $(TestArgs) -dotnetPath $(DotnetToTestPath)\dotnet</TestArgs>
2019-05-15 18:09:01 -07:00
<TestArgs > $(TestArgs) -testExecutionDirectory $(TestExecutionDirectory)</TestArgs>
<TestArgs > $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestConfig.xml"</TestArgs>
2019-04-15 11:24:42 -07:00
<TestArgs > $(TestArgs) -xml "$(ResultsXmlPath)"</TestArgs>
<TestArgs > $(TestArgs) -html "$(ResultsHtmlPath)" $(TestRunnerAdditionalArguments)</TestArgs>
2019-05-20 12:04:08 -07:00
<TestArgs > $(TestArgs) > $(ResultsStdOutPath) 2> & 1</TestArgs>
2019-08-22 11:17:41 -07:00
<TestArgs > $(TestArgs) -testList SdkIntegrationTests</TestArgs>
2019-04-15 11:24:42 -07:00
</PropertyGroup>
2019-08-23 15:49:21 -07:00
<PropertyGroup Condition= "('$(OS)' == 'Windows_NT') And ('$(Architecture)' == 'x86')" >
<!-- Add list of tests to skip on x86 -->
<TestArgs > $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestsToSkipx86.xml"</TestArgs>
</PropertyGroup>
2019-09-10 16:15:33 -07:00
<PropertyGroup Condition= " '$(IslinuxPortable)' == 'true' " >
<!-- Add list of tests to skip on Linux Portable -->
<TestArgs > $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestsToSkipPortableLinux.xml"</TestArgs>
</PropertyGroup>
2019-04-23 08:54:02 -07:00
<Exec Command= "$(ToolRunPrefix)dotnet tool run $(ToolCommandName) -- $(TestArgs)"
2019-09-10 13:41:34 -07:00
WorkingDirectory="$(TestLocalToolFolder)"
EnvironmentVariables="DOTNET_CLI_HOME=$(DOTNET_CLI_HOME)"/>
2019-04-15 11:24:42 -07:00
</Target>
<Import Project= "Sdk.targets" Sdk= "Microsoft.NET.Sdk" />
<!-- Remove items which light up build logic which could generate warnings / errors -->
<ItemGroup >
<EmbeddedResource Remove= "@(EmbeddedResource)" />
<Reference Remove= "@(Reference)" />
<PackageReference Remove= "@(PackageReference)" />
<ProjectReference Remove= "@(ProjectReference)" />
<SwrFile Remove= "@(SwrFile)" />
</ItemGroup>
<PropertyGroup >
<TargetPath > </TargetPath>
<!-- Prevent projects referencing this from trying to pass us to the compiler -->
</PropertyGroup>
<Target Name= "CoreCompile" />
<!-- Prevent Csc from being called -->
<Target Name= "GenerateTargetFrameworkMonikerAttribute" />
<!-- Don't generate TFM attribute -->
<Target Name= "RuntimeImplementationProjectOutputGroup" />
<!-- Group always attempts resolve runtime, regardless of <CopyNuGetImplementations> -->
<Target Name= "GetReferenceAssemblyPaths" />
<!-- Don't go looking for framewoek reference assemblies -->
<Target Name= "GetFrameworkPaths" />
<!-- ^ -->
<Target Name= "GetBuildVersion" />
<!-- For Packages projects, which use GetNuGetPackageVersionEx which depends on GetBuildVersion -->
<Target Name= "Pack" />
<Target Name= "Test" DependsOnTargets= "RunSdkTests" />
</Project>