value: DotNetCore
- name: _InternalBuildArgs
value: ''
-
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- name: _SignType
value: real
- name: _InternalBuildArgs
value: /p:DotNetSignType=$(_SignType)
/p:TeamName=$(_TeamName)
- /p:DotNetPublishUsingPipelines=$(PublishPackages)
+ /p:DotNetPublishUsingPipelines=true
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
stages:
<Project>
<!--
$(BuildArch) - architecture to test (x64, x86, arm, arm64). Defaults to x64.
- $(DailyTest) - if true, only install/test the latest (master branch) runtime
$(PrivateBuildPath) - if non-empty, path to private runtime build to copy/test
+
+ Internal service release testing:
+
+ $(DotnetRuntimeVersion) - the service release version to test against (fx-version option value) i.e. 2.1.17, 3.1.3 or "default"
+ $(DotnetRuntimeDownloadVersion) - the service release package version i.e. 2.1.17, 3.1.3-servicing.20128.1 or "default"
+ $(RuntimeSourceFeed) - the service release internal blob storage link
+ $(RuntimeSourceFeedKey) - the service release blob feed token
From Versions.props:
-->
<PropertyGroup>
- <DailyTest Condition="'$(DailyTest)' == ''">false</DailyTest>
<BuildArch Condition="'$(BuildArch)' == ''">$(Platform)</BuildArch>
<BuildArch Condition="'$(BuildArch)' == ''">x64</BuildArch>
+ <PrivateBuildTesting>false</PrivateBuildTesting>
+ <PrivateBuildTesting Condition="'$(PrivateBuildPath)' != ''">true</PrivateBuildTesting>
+ <InternalReleaseTesting>false</InternalReleaseTesting>
+ <InternalReleaseTesting Condition="'$(DotnetRuntimeVersion)' != 'default'">true</InternalReleaseTesting>
+ <ExtraInstallArgs>-runtimesourcefeed '$(RuntimeSourceFeed)' -runtimesourcefeedkey '$(RuntimeSourceFeedKey)'</ExtraInstallArgs>
</PropertyGroup>
<PropertyGroup Condition="'$(BuildArch)' != 'x86'">
</Otherwise>
</Choose>
- <ItemGroup>
- <!-- We always test on latest, so install that one even for scheduled builds -->
- <TestVersions Include="Latest" RuntimeVersion="$(MicrosoftNETCoreAppVersion)" AspNetVersion="$(MicrosoftAspNetCoreAppRefVersion)" Install="true" />
- <TestVersions Include="31" RuntimeVersion="$(MicrosoftNETCoreApp31Version)" AspNetVersion="$(MicrosoftAspNetCoreApp31Version)" Install="!$(DailyTest)" />
- <TestVersions Include="30" RuntimeVersion="$(MicrosoftNETCoreApp30Version)" AspNetVersion="$(MicrosoftAspNetCoreApp30Version)" Install="!$(DailyTest)" />
- <TestVersions Include="21" RuntimeVersion="$(MicrosoftNETCoreApp21Version)" AspNetVersion="$(MicrosoftAspNetCoreApp21Version)" Install="true" />
+ <ItemGroup Condition="!$(InternalReleaseTesting) and !$(PrivateBuildTesting)">
+ <TestVersions Include="Latest" RuntimeVersion="$(MicrosoftNETCoreAppVersion)" AspNetVersion="$(MicrosoftAspNetCoreAppRefVersion)" />
+ <TestVersions Include="31" RuntimeVersion="$(MicrosoftNETCoreApp31Version)" AspNetVersion="$(MicrosoftAspNetCoreApp31Version)" />
+ <TestVersions Include="30" RuntimeVersion="$(MicrosoftNETCoreApp30Version)" AspNetVersion="$(MicrosoftAspNetCoreApp30Version)" />
+ <TestVersions Include="21" RuntimeVersion="$(MicrosoftNETCoreApp21Version)" AspNetVersion="$(MicrosoftAspNetCoreApp21Version)" />
+ </ItemGroup>
+
+ <!-- Local private build testing -->
+ <ItemGroup Condition="$(PrivateBuildTesting)">
+ <TestVersions Include="Latest" RuntimeVersion="$(MicrosoftNETCoreAppVersion)" AspNetVersion="$(MicrosoftAspNetCoreAppRefVersion)" />
+ <TestVersions Include="21" RuntimeVersion="$(MicrosoftNETCoreApp21Version)" />
+ </ItemGroup>
+
+ <!-- Internal service release testing -->
+ <ItemGroup Condition="$(InternalReleaseTesting)">
+ <TestVersions Include="Internal" RuntimeVersion="$(DotnetRuntimeDownloadVersion)" ExtraInstallArgs="$(ExtraInstallArgs)" Condition="'$(DotnetRuntimeDownloadVersion)' != 'default'"/>
+ <TestVersions Include="Internal" RuntimeVersion="$(DotnetRuntimeVersion)" ExtraInstallArgs="$(ExtraInstallArgs)" Condition="'$(DotnetRuntimeDownloadVersion)' == 'default'"/>
+ <TestVersions Include="21" RuntimeVersion="$(MicrosoftNETCoreApp21Version)" />
</ItemGroup>
<!--
<Target Name="InstallTestRuntimes"
BeforeTargets="RunTests"
- DependsOnTargets="InstallRuntimesWindows;InstallRuntimesUnix;WriteTestVersionManifest;TestPrivateBuild" />
+ DependsOnTargets="CleanupVersionManifest;InstallRuntimesWindows;InstallRuntimesUnix;CopyPrivateBuild;WriteTestVersionManifest;" />
<!--
Installs the test runtimes on Windows
Condition="$([MSBuild]::IsOsPlatform(Windows))"
Inputs="$(VersionsPropsPath)" Outputs="$(TestConfigFileName)">
- <Exec Command="$(PowershellWrapper) "& { &$(DotnetInstallScriptCmd) $(CommonInstallArgs) -version %(TestVersions.RuntimeVersion) -runtime dotnet }""
- Condition="%(TestVersions.Install)" />
+ <Exec Command="$(PowershellWrapper) "& { &$(DotnetInstallScriptCmd) $(CommonInstallArgs) %(TestVersions.ExtraInstallArgs) -version %(TestVersions.RuntimeVersion) -runtime dotnet }""
+ Condition="'%(TestVersions.RuntimeVersion)' != ''" />
- <Exec Command="$(PowershellWrapper) "& { &$(DotnetInstallScriptCmd) $(CommonInstallArgs) -version %(TestVersions.AspNetVersion) -runtime aspnetcore }""
- Condition="%(TestVersions.Install)" />
+ <Exec Command="$(PowershellWrapper) "& { &$(DotnetInstallScriptCmd) $(CommonInstallArgs) %(TestVersions.ExtraInstallArgs) -version %(TestVersions.AspNetVersion) -runtime aspnetcore }""
+ Condition="'%(TestVersions.AspNetVersion)' != ''" />
</Target>
<!--
Condition="!$([MSBuild]::IsOsPlatform(Windows))"
Inputs="$(VersionsPropsPath)" Outputs="$(TestConfigFileName)">
- <Exec Command="$(DotnetInstallScriptCmd) $(CommonInstallArgs) -version %(TestVersions.RuntimeVersion) -runtime dotnet"
+ <Exec Command="$(DotnetInstallScriptCmd) $(CommonInstallArgs) %(TestVersions.ExtraInstallArgs) -version %(TestVersions.RuntimeVersion) -runtime dotnet"
IgnoreStandardErrorWarningFormat="true"
- Condition="%(TestVersions.Install)" />
+ Condition="'%(TestVersions.RuntimeVersion)' != ''" />
- <Exec Command="$(DotnetInstallScriptCmd) $(CommonInstallArgs) -version %(TestVersions.AspNetVersion) -runtime aspnetcore"
+ <Exec Command="$(DotnetInstallScriptCmd) $(CommonInstallArgs) %(TestVersions.ExtraInstallArgs) -version %(TestVersions.AspNetVersion) -runtime aspnetcore"
IgnoreStandardErrorWarningFormat="true"
- Condition="%(TestVersions.Install)" />
+ Condition="'%(TestVersions.AspNetVersion)' != ''" />
</Target>
<!--
Outputs="$(TestConfigFileName)">
<PropertyGroup>
+ <RuntimeVersionLatest>$(MicrosoftNETCoreAppVersion)</RuntimeVersionLatest>
+ <RuntimeVersionLatest Condition="$(InternalReleaseTesting)">$(DotnetRuntimeVersion)</RuntimeVersionLatest>
<TestConfigFileLines>
<![CDATA[
<Configuration>
- <DailyTest>$(DailyTest)</DailyTest>
+ <PrivateBuildTesting>$(PrivateBuildTesting)</PrivateBuildTesting>
+ <InternalReleaseTesting>$(InternalReleaseTesting)</InternalReleaseTesting>
+
<RuntimeVersion21>$(MicrosoftNETCoreApp21Version)</RuntimeVersion21>
<AspNetCoreVersion21>$(MicrosoftAspNetCoreApp21Version)</AspNetCoreVersion21>
+
<RuntimeVersion30>$(MicrosoftNETCoreApp30Version)</RuntimeVersion30>
<AspNetCoreVersion30>$(MicrosoftAspNetCoreApp30Version)</AspNetCoreVersion30>
+
<RuntimeVersion31>$(MicrosoftNETCoreApp31Version)</RuntimeVersion31>
<AspNetCoreVersion31>$(MicrosoftAspNetCoreApp31Version)</AspNetCoreVersion31>
- <RuntimeVersionLatest>$(MicrosoftNETCoreAppVersion)</RuntimeVersionLatest>
+
+ <RuntimeVersionLatest>$(RuntimeVersionLatest)</RuntimeVersionLatest>
<AspNetCoreVersionLatest>$(MicrosoftAspNetCoreAppRefVersion)</AspNetCoreVersionLatest>
</Configuration>
]]>
</ItemGroup>
</Target>
+<!--
+ Removes the test config file if internal service release or private build testing
+-->
+
+ <Target Name="CleanupVersionManifest"
+ Condition="$(InternalReleaseTesting) or $(PrivateBuildTesting)">
+
+ <!-- Make sure the config file gets regenerated in the WriteTestVersionManifest target -->
+ <Delete Files="$(TestConfigFileName)" />
+
+ </Target>
+
<!--
Copies the private runtime build binaries and on Windows adds registry keys
-->
- <Target Name="TestPrivateBuild"
+ <Target Name="CopyPrivateBuild"
Condition="'$(PrivateBuildPath)' != ''"
DependsOnTargets="ModifyRegistry">
[switch] $ci,
[switch] $skipmanaged,
[switch] $skipnative,
- [switch] $dailytest,
[string] $privatebuildpath = "",
[switch] $cleanupprivatebuild,
+ [ValidatePattern("(default|\d+\.\d+.\d+(-[a-z0-9\.]+)?)")][string] $dotnetruntimeversion = 'default',
+ [ValidatePattern("(default|\d+\.\d+.\d+(-[a-z0-9\.]+)?)")][string] $dotnetruntimedownloadversion= 'default',
+ [string] $runtimesourcefeed = '',
+ [string] $runtimesourcefeedkey = '',
[Parameter(ValueFromRemainingArguments=$true)][String[]] $remainingargs
)
$artifactsdir = Join-Path $reporoot "artifacts"
$logdir = Join-Path $artifactsdir "log"
$logdir = Join-Path $logdir Windows_NT.$architecture.$configuration
-$dailytestproperty = "false"
if ($ci) {
$remainingargs = "-ci " + $remainingargs
}
-if ($dailytest -or $privatebuildpath -ne "") {
- $dailytestproperty = "true"
-}
-
# Remove the private build registry keys
if ($cleanupprivatebuild) {
Invoke-Expression "& `"$engroot\common\msbuild.ps1`" $engroot\CleanupPrivateBuild.csproj /v:$verbosity /t:CleanupPrivateBuild /p:BuildArch=$architecture /p:TestArchitectures=$architecture"
}
# Run the xunit tests
-if ($test -or $dailytest) {
+if ($test) {
if (-not $crossbuild) {
- & "$engroot\common\build.ps1" -test -configuration $configuration -verbosity $verbosity -ci:$ci /bl:$logdir\Test.binlog /p:BuildArch=$architecture /p:TestArchitectures=$architecture /p:DailyTest=$dailytestproperty /p:PrivateBuildPath=$privatebuildpath
+ & "$engroot\common\build.ps1" `
+ -test `
+ -configuration $configuration `
+ -verbosity $verbosity `
+ -ci:$ci `
+ /bl:$logdir\Test.binlog `
+ /p:BuildArch=$architecture `
+ /p:TestArchitectures=$architecture `
+ /p:PrivateBuildPath="$privatebuildpath" `
+ /p:DotnetRuntimeVersion="$dotnetruntimeversion" `
+ /p:DotnetRuntimeDownloadVersion="$dotnetruntimedownloadversion" `
+ /p:RuntimeSourceFeed="$runtimesourcefeed" `
+ /p:RuntimeSourceFeedKey="$runtimesourcefeedkey"
+
if ($lastExitCode -ne 0) {
exit $lastExitCode
}
__NativeBuild=true
__CrossBuild=false
__Test=false
-__DailyTest=false
__PrivateBuildPath=""
__CI=false
__Verbosity=minimal
__ManagedBuildArgs=
__TestArgs=
__UnprocessedBuildArgs=
+__DotnetRuntimeVersion='default'
+__DotnetRuntimeDownloadVersion='default'
+__RuntimeSourceFeed=''
+__RuntimeSourceFeedKey=''
usage()
{
echo "--skipmanaged- Skip building managed components"
echo "--skipnative - Skip building native components"
echo "--test - run xunit tests"
- echo "--dailytest - test components for daily build job"
echo "--privatebuildpath - path to local private runtime build to test"
echo "--architecture <x64|x86|arm|armel|arm64>"
echo "--configuration <debug|release>"
__Test=true
;;
- -dailytest)
- __DailyTest=true
+ -privatebuildpath)
+ __PrivateBuildPath="$2"
+ shift
;;
- -privatebuildpath)
- __PrivateBuildPath=$2
- __DailyTest=true
+ -dotnetruntimeversion)
+ __DotnetRuntimeVersion="$2"
+ shift
+ ;;
+
+ -dotnetruntimedownloadversion)
+ __DotnetRuntimeDownloadVersion="$2"
+ shift
+ ;;
+
+ -runtimesourcefeed)
+ __RuntimeSourceFeed="$2"
+ shift
+ ;;
+
+ -runtimesourcefeedkey)
+ __RuntimeSourceFeedKey="$2"
shift
;;
if [ $__NativeBuild == true ]; then
echo "Generating Version Source File"
__GenerateVersionLog="$__LogDir/GenerateVersion.binlog"
- "$__ProjectRoot/eng/common/msbuild.sh" $__ProjectRoot/eng/CreateVersionFile.csproj /v:$__Verbosity /bl:$__GenerateVersionLog /t:GenerateVersionFiles /restore /p:GenerateVersionSourceFile=true /p:NativeVersionSourceFile="$__IntermediatesDir/version.cpp" /p:Configuration="$__BuildType" /p:Platform="$__BuildArch" $__UnprocessedBuildArgs
+
+ "$__ProjectRoot/eng/common/msbuild.sh" \
+ $__ProjectRoot/eng/CreateVersionFile.csproj \
+ /v:$__Verbosity \
+ /bl:$__GenerateVersionLog \
+ /t:GenerateVersionFiles \
+ /restore \
+ /p:GenerateVersionSourceFile=true \
+ /p:NativeVersionSourceFile="$__IntermediatesDir/version.cpp" \
+ /p:Configuration="$__BuildType" \
+ /p:Platform="$__BuildArch" \
+ $__UnprocessedBuildArgs
+
if [ $? != 0 ]; then
echo "Generating Version Source File FAILED"
exit 1
echo "lldb: '$LLDB_PATH' gdb: '$GDB_PATH'"
- "$__ProjectRoot/eng/common/build.sh" --test --configuration "$__BuildType" --verbosity "$__Verbosity" /bl:$__LogDir/Test.binlog /p:BuildArch=$__BuildArch /p:DailyTest=$__DailyTest /p:PrivateBuildPath=$__PrivateBuildPath $__TestArgs
+ "$__ProjectRoot/eng/common/build.sh" \
+ --test \
+ --configuration "$__BuildType" \
+ --verbosity "$__Verbosity" \
+ /bl:$__LogDir/Test.binlog \
+ /p:BuildArch="$__BuildArch" \
+ /p:PrivateBuildPath="$__PrivateBuildPath" \
+ /p:DotnetRuntimeVersion="$__DotnetRuntimeVersion" \
+ /p:DotnetRuntimeDownloadVersion="$__DotnetRuntimeDownloadVersion" \
+ /p:RuntimeSourceFeed="$__RuntimeSourceFeed" \
+ /p:RuntimeSourceFeedKey="$__RuntimeSourceFeedKey" \
+ $__TestArgs
+
if [ $? != 0 ]; then
exit 1
fi
- _HelixType: build/product
- _HelixBuildConfig: $(_BuildConfig)
- _Pipeline_StreamDumpDir: $(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/streams
+ - _InternalInstallArgs: ''
+
+ # For testing msrc's and service releases. The RuntimeSourceVersion is either "default" or the service release version to test
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - group: DotNet-MSRC-Storage
+ - _InternalInstallArgs:
+ -dotnetruntimeversion '$(DotnetRuntimeVersion)'
+ -dotnetruntimedownloadversion '$(DotnetRuntimeDownloadVersion)'
+ -runtimesourcefeed '$(dotnetfeedmsrc-private-feed-url)'
+ -runtimesourcefeedkey '$(dotnetclimsrc-read-sas-token-base64)'
# Only enable publishing in non-public, non PR scenarios.
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
-architecture $(_BuildArch)
-prepareMachine
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
+ $(_InternalInstallArgs)
displayName: Build / Test
condition: succeeded()
--prepareMachine
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:BUILD_BUILDNUMBER=$(BUILD.BUILDNUMBER)
+ $(_InternalInstallArgs)
displayName: Docker Build / Test
condition: succeeded()
--architecture $(_BuildArch)
--prepareMachine
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
+ $(_InternalInstallArgs)
displayName: Build / Test
condition: succeeded()
<LogDir>$(RootBinDir)/TestResults/$(TargetConfiguration)/sos.unittests_$(Timestamp)</LogDir>
<DumpDir>$(RootBinDir)/tmp/$(TargetConfiguration)\dumps</DumpDir>
+ <TestLatestOnly>false</TestLatestOnly>
+ <TestLatestOnly Condition="'$(PrivateBuildTesting)' == 'true'">true</TestLatestOnly>
+ <TestLatestOnly Condition="'$(InternalReleaseTesting)' == 'true'">true</TestLatestOnly>
+
+ <TestWebApp3>true</TestWebApp3>
+ <TestWebApp3 Condition="'$(InternalReleaseTesting)' == 'true'">false</TestWebApp3>
+
+ <!-- Build the debuggee for this framework version but run it on latest -->
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '5')">netcoreapp3.0</BuildProjectFrameworkLatest>
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '3.1')">netcoreapp3.0</BuildProjectFrameworkLatest>
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '2.1')">netcoreapp2.1</BuildProjectFrameworkLatest>
+
<DebuggeeSourceRoot>$(RepoRootDir)/src/SOS/SOS.UnitTests/Debuggees</DebuggeeSourceRoot>
<DebuggeeBuildProcess>sdk.prebuilt</DebuggeeBuildProcess>
<DebuggeeBuildRoot>$(RootBinDir)</DebuggeeBuildRoot>
Default (prebuilt)
-->
<Option>
- <!-- The debuggee built for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- The debuggee built for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
<TestName>SOS.StackAndOtherTests</TestName>
<Options>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
</Options>
<!--
SOS.WebApp3 (runs on 3.0, 3.1 and latest aspnetcore)
-->
- <Option>
+ <Option Condition="'$(TestWebApp3)' == 'true'">
<TestName>SOS.WebApp3</TestName>
<Options>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersionLatest)</FrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersion31)</FrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersion30)</FrameworkVersion>
<CDBPath>$(RootBinDir)\bin\SOS.UnitTests\$(TargetConfiguration)\netcoreapp2.0\publish\runtimes\win-$(TargetArchitecture)\native\cdb.exe</CDBPath>
<CDBHelperExtension>$(InstallDir)\runcommand.dll</CDBHelperExtension>
+ <TestLatestOnly>false</TestLatestOnly>
+ <TestLatestOnly Condition="'$(PrivateBuildTesting)' == 'true'">true</TestLatestOnly>
+ <TestLatestOnly Condition="'$(InternalReleaseTesting)' == 'true'">true</TestLatestOnly>
+
+ <TestWebApp>true</TestWebApp>
+ <TestWebApp Condition="'$(TestLatestOnly)' == 'true'">false</TestWebApp>
+
+ <TestWebApp3>true</TestWebApp3>
+ <TestWebApp3 Condition="'$(InternalReleaseTesting)' == 'true'">false</TestWebApp3>
+
+ <TestDesktop>true</TestDesktop>
+ <TestDesktop Condition="'$(TestLatestOnly)' == 'true'">false</TestDesktop>
+ <TestDesktop Condition="'$(TargetArchitecture)' == 'arm64'">false</TestDesktop>
+
+ <!-- Build the debuggee for this framework version but run it on latest -->
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '5')">netcoreapp3.0</BuildProjectFrameworkLatest>
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '3.1')">netcoreapp3.0</BuildProjectFrameworkLatest>
+ <BuildProjectFrameworkLatest Condition="StartsWith('$(RuntimeVersionLatest)', '2.1')">netcoreapp2.1</BuildProjectFrameworkLatest>
+
<DesktopFrameworkPath Condition="$(TargetArchitecture) == x64">$(WinDir)\Microsoft.Net\Framework64\v4.0.30319\</DesktopFrameworkPath>
<DesktopFrameworkPath Condition="$(TargetArchitecture) != x64">$(WinDir)\Microsoft.Net\Framework\v4.0.30319\</DesktopFrameworkPath>
<DesktopFramework>net462</DesktopFramework>
Default (prebuilt)
-->
<Option>
- <!-- The debuggee built for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- The debuggee built for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
<TestName>SOS.StackAndOtherTests</TestName>
<Options>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
</Options>
<!--
SOS.WebApp (runs only on Windows 2.x aspnetcore)
-->
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestWebApp)' == 'true'">
<TestName>SOS.WebApp</TestName>
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
<!--
SOS.WebApp3 and SOS.DualRuntimes (runs on 3.0, 3.1 and latest aspnetcore)
-->
- <Option>
+ <Option Condition="'$(TestWebApp3)' == 'true'">
<Options>
<Option>
<TestName>SOS.WebApp3</TestName>
</Options>
<Options>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectFramework>$(BuildProjectFrameworkLatest)</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersionLatest)</FrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersion31)</FrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
+ <Option Condition="'$(TestLatestOnly)' != 'true'">
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
<FrameworkVersion>$(AspNetCoreVersion30)</FrameworkVersion>
<!--
Desktop Runtime (debuggees cli built)
-->
- <Option Condition="$(TargetArchitecture) != arm64">
+ <Option Condition="'$(TestDesktop)' == 'true'">
<Options>
<Option>
</Option>