From 0be50e12894e77555d35bdf75c6e8d6740826324 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:38:37 -0500 Subject: [PATCH 001/166] Align libraries AppleAppBuilder parameters order --- src/mono/msbuild/apple/build/AppleApp.targets | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index 30d72c6b916a5..d13e7080901d7 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -142,26 +142,28 @@ + InvariantGlobalization="$(InvariantGlobalization)" + ForceInterpreter="$(MonoForceInterpreter)" + EnableAppSandbox="$(EnableAppSandbox)"> From f09fa05d5799e5f33a4fb833e2f06760721825b7 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:45:59 -0500 Subject: [PATCH 002/166] Align runtime tests AppleAppBuilder parameters order --- src/tests/build.proj | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 56a58aaca9f80..ba7fc87fe43e7 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -333,22 +333,21 @@ + ForceInterpreter="$(MonoForceInterpreter)" + EnableAppSandbox="$(EnableAppSandbox)"> From 53b5060705406ff88a17ca159bde7af6c0a0c7b3 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:47:43 -0500 Subject: [PATCH 003/166] Populate assemblies in iOS runtime tests similar to libraries tests --- src/tests/build.proj | 75 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index ba7fc87fe43e7..cece2ba4cc468 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -331,12 +331,85 @@ SourceFiles="%(ExtraDlls.Identity)" DestinationFolder="$(BuildDir)/testdir-%(ExtraDlls.TestDllFilename)" /> + + + + + + + + + + + + + + + + + + + + + + + + <_AOTMode Condition="'$(MonoForceInterpreter)' != 'true'">Full + <_AOTMode Condition="'$(MonoForceInterpreter)' == 'true'">JustInterp + @(MonoAOTCompilerDefaultAotArguments, ';') + @(MonoAOTCompilerDefaultProcessArguments, ';') + <_MobileIntermediateOutputPath>$([MSBuild]::NormalizeDirectory($(IntermediateOutputPath), 'mobile')) + + + + <_AppleAssembliesInternal Include="$(BuildDir)/*.dll" /> + <_AppleAssembliesInternal> + <_InternalForceInterpret Condition="'$(MonoForceInterpreter)' == 'true' and '%(FileName)%(Extension)' != 'System.Private.CoreLib.dll'">true + <_IsNative>false + + + <_AotInputAssemblies Include="@(_AppleAssembliesInternal)" + Condition="'%(_AppleAssembliesInternal._InternalForceInterpret)' != 'true'"> + $(AotArguments) + $(ProcessArguments) + + + <_AOT_InternalForceInterpretAssemblies Include="@(_AppleAssembliesInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" /> + <_AppleAssembliesInternal Remove="@(_AppleAssembliesInternal)" /> + + + + + + <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) + <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe + + + + + + + + + + + <_AppleAssembliesInternal Include="@(_AOT_InternalForceInterpretAssemblies)" /> + + Date: Fri, 2 Dec 2022 13:49:39 -0500 Subject: [PATCH 004/166] [build] Set RunAOTCompilation and MonoForceInterpreter for iOS runtime tests --- src/tests/build.proj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index cece2ba4cc468..1aed11be21410 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -277,6 +277,8 @@ $(IntermediateOutputPath)\iOSApps\$(Category) $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app diagnostics_tracing;marshal-ilgen + True + True @@ -417,7 +419,9 @@ BuildAppBundle="True" GenerateXcodeProject="True" UseConsoleUITemplate="True" + ForceAOT="$(RunAOTCompilation)" RuntimeComponents="$(RuntimeComponents)" + DiagnosticPorts="$(DiagnosticPorts)" InvariantGlobalization="true" ForceInterpreter="$(MonoForceInterpreter)" EnableAppSandbox="$(EnableAppSandbox)"> From 5135bc420274999c575dae7b418a9e0646a623bb Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:50:22 -0500 Subject: [PATCH 005/166] [build] Enable diagnostics on iOS runtime tests --- src/tests/build.proj | 1 + src/tests/tracing/eventpipe/common/IpcTraceTest.cs | 4 ++-- src/tests/tracing/eventpipe/common/IpcUtils.cs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 1aed11be21410..66178a89caa97 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -277,6 +277,7 @@ $(IntermediateOutputPath)\iOSApps\$(Category) $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app diagnostics_tracing;marshal-ilgen + 127.0.0.1:9000,nosuspend,listen True True diff --git a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs index 9cfd3c86e8fa3..4fbfd812d584c 100644 --- a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs +++ b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs @@ -204,7 +204,7 @@ private int Validate(bool enableRundownProvider = true) Func optionalTraceValidationCallback = null; DiagnosticsClient client = new DiagnosticsClient(processId); #if DIAGNOSTICS_RUNTIME - if (OperatingSystem.IsAndroid()) + if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) client = new DiagnosticsClient(new IpcEndpointConfig("127.0.0.1:9000", IpcEndpointConfig.TransportType.TcpSocket, IpcEndpointConfig.PortType.Listen)); #endif var readerTask = new Task(() => @@ -344,7 +344,7 @@ private int Validate(bool enableRundownProvider = true) // the process that created them, so we don't need to check on that platform. static public bool EnsureCleanEnvironment() { - if (!OperatingSystem.IsWindows() && !OperatingSystem.IsBrowser()) + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsIOS() && !OperatingSystem.IsBrowser())) { Func<(IEnumerable>, List)> getPidsAndSockets = () => { diff --git a/src/tests/tracing/eventpipe/common/IpcUtils.cs b/src/tests/tracing/eventpipe/common/IpcUtils.cs index 1b0bebbcfdc94..34d24f6e24ca6 100644 --- a/src/tests/tracing/eventpipe/common/IpcUtils.cs +++ b/src/tests/tracing/eventpipe/common/IpcUtils.cs @@ -446,7 +446,7 @@ public static Stream GetStandardTransport(int processId) namedPipe.Connect(3); return namedPipe; } - else if (OperatingSystem.IsAndroid()) + else if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) { TcpClient client = new TcpClient("127.0.0.1", 9000); return client.GetStream(); From ebe00d2a80b0cb3235ebc39861cc26c753dd523d Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:50:45 -0500 Subject: [PATCH 006/166] [test] Reenable buffersize runtime test on iOS --- src/tests/issues.targets | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index d0e374bf4992d..13a1c2a283ea0 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4211,9 +4211,6 @@ missing assembly - - https://github.com/dotnet/runtime/issues/74891 - https://github.com/dotnet/runtime/issues/74891 From 49d4af9dcdb4c0c1d75dac3537361ec86f2d480a Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 14:29:51 -0500 Subject: [PATCH 007/166] [tests] Reenable diagnostic_tracing tests not involving subprocesses --- src/tests/issues.targets | 18 ---------------- .../eventpipe/processinfo/processinfo.cs | 21 ++++++++++++------- .../eventpipe/processinfo2/processinfo2.cs | 21 ++++++++++++------- 3 files changed, 26 insertions(+), 34 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 13a1c2a283ea0..b17c1dbcf555b 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4211,27 +4211,12 @@ missing assembly - - https://github.com/dotnet/runtime/issues/74891 - - - https://github.com/dotnet/runtime/issues/74891 - https://github.com/dotnet/runtime/issues/74891 - - https://github.com/dotnet/runtime/issues/74891 - https://github.com/dotnet/runtime/issues/74891 - - https://github.com/dotnet/runtime/issues/74891 - - - https://github.com/dotnet/runtime/issues/74891 - https://github.com/dotnet/runtime/issues/74891 @@ -4241,9 +4226,6 @@ https://github.com/dotnet/runtime/issues/74891 - - https://github.com/dotnet/runtime/issues/74891 - needs triage diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.cs b/src/tests/tracing/eventpipe/processinfo/processinfo.cs index 0461d869205e2..732a855e9441c 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.cs +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.cs @@ -142,16 +142,17 @@ public static int Main() string commandLine = System.Text.Encoding.Unicode.GetString(response.Payload[start..end]).TrimEnd('\0'); Logger.logger.Log($"commandLine: \"{commandLine}\""); - // The following logic is tailored to this specific test where the cmdline _should_ look like the following: - // /path/to/corerun /path/to/processinfo.dll - // or - // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; - string receivedCommandLine = NormalizeCommandLine(commandLine); - // ActiveIssue https://github.com/dotnet/runtime/issues/62729 - if (!OperatingSystem.IsAndroid()) + if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS()) + { + // The following logic is tailored to this specific test where the cmdline _should_ look like the following: + // /path/to/corerun /path/to/processinfo.dll + // or + // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll + string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); + } // VALIDATE OS start = end; @@ -184,6 +185,10 @@ public static int Main() { expectedOSValue = "Android"; } + else if (OperatingSystem.IsIOS()) + { + expectedOSValue = "iOS"; + } else { expectedOSValue = "Unknown"; diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs index 94ae0fa712462..e0cdb7b82d2ff 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs @@ -143,16 +143,17 @@ public static int Main() string commandLine = System.Text.Encoding.Unicode.GetString(response.Payload[start..end]).TrimEnd('\0'); Logger.logger.Log($"commandLine: \"{commandLine}\""); - // The following logic is tailored to this specific test where the cmdline _should_ look like the following: - // /path/to/corerun /path/to/processinfo.dll - // or - // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; - string receivedCommandLine = NormalizeCommandLine(commandLine); - // ActiveIssue https://github.com/dotnet/runtime/issues/62729 - if (!OperatingSystem.IsAndroid()) + if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS()) + { + // The following logic is tailored to this specific test where the cmdline _should_ look like the following: + // /path/to/corerun /path/to/processinfo.dll + // or + // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll + string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); + } // VALIDATE OS start = end; @@ -185,6 +186,10 @@ public static int Main() { expectedOSValue = "Android"; } + else if (OperatingSystem.IsIOS()) + { + expectedOSValue = "iOS"; + } else { expectedOSValue = "Unknown"; From 46b83a3a1175c750803c73570bc4c4a1bbf0170a Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 16 Dec 2022 18:29:55 -0500 Subject: [PATCH 008/166] [pipelines] Add iOS/tvOS device/simulator arm64 runtime tests job --- .../runtime-extra-platforms-ioslike.yml | 38 +++++++++++++++++++ ...ntime-extra-platforms-ioslikesimulator.yml | 36 ++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 86b62963de640..fc2022cffc770 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -43,3 +43,41 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + +# +# Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + platforms: + - iOS_arm64 + - tvOS_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + # don't run tests on PRs until we can get significantly more devices + # Turn off the testing for now, until https://github.com/dotnet/runtime/issues/60128 gets resolved + # ${{ if eq(variables['isRollingBuild'], true) }}: + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index b1514af8023c4..be373c27d3896 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -45,3 +45,39 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# Build the whole product using Mono for Android and run runtime tests with Android devices +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - iOSSimulator_arm64 + - tvOSSimulator_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file From 353e7b8a18d3e597d74aa7faec661dfb6db000d7 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Mon, 19 Dec 2022 11:55:02 -0500 Subject: [PATCH 009/166] [pipelines] Fix iOS/iOSlike jobs --- .../runtime-extra-platforms-ioslike.yml | 11 +++-------- .../runtime-extra-platforms-ioslikesimulator.yml | 13 ++++++------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index fc2022cffc770..8d38ac287afd2 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -54,6 +54,7 @@ jobs: buildConfig: Release runtimeFlavor: mono isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - iOS_arm64 - tvOS_arm64 @@ -73,11 +74,5 @@ jobs: nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 - # don't run tests on PRs until we can get significantly more devices - # Turn off the testing for now, until https://github.com/dotnet/runtime/issues/60128 gets resolved - # ${{ if eq(variables['isRollingBuild'], true) }}: - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index be373c27d3896..2420571265986 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -47,7 +47,7 @@ jobs: testRunNamePrefixSuffix: Mono_$(_BuildConfig) # -# Build the whole product using Mono for Android and run runtime tests with Android devices +# Build the whole product using Mono for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -58,8 +58,10 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - iOSSimulator_arm64 - - tvOSSimulator_arm64 + - iOSSimulator_x64 + - tvOSSimulator_x64 + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iOSSimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -77,7 +79,4 @@ jobs: buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file From 9bb2feca3f26dd72d9c4c4f0c64f7604bff52cba Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Mon, 19 Dec 2022 13:04:52 -0500 Subject: [PATCH 010/166] [pipelines] Add necessary parameters for iOSlike platforms --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 8d38ac287afd2..f6fc87e2fb17e 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -72,7 +72,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) + buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 2420571265986..442a59b5ebe7a 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -76,7 +76,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) + buildArgs: -s mono+libs -c $(_BuildConfig) /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file From f2f98285bb0752983f5afb1f56e1900f586e79e9 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 19 Dec 2022 16:56:13 -0500 Subject: [PATCH 011/166] Propagate DevTeamProvisioning on iOS.{ --- src/tests/build.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index 66178a89caa97..7571d7679a5f9 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -562,6 +562,7 @@ $(GroupBuildCmd) "/p:__SkipRestorePackages=1" $(GroupBuildCmd) /nodeReuse:false $(GroupBuildCmd) /maxcpucount + $(GroupBuildCmd) "/p:DevTeamProvisioning=-" $(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" From e9fd019ea5c194ae8ea3e917424241ca14dd4371 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 5 Jan 2023 16:05:19 -0500 Subject: [PATCH 012/166] Added missing paren to copy files. --- src/tests/Common/Directory.Build.targets | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index c7386e7de3306..fae80e3b87710 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -183,6 +183,12 @@ + + + + + + Date: Fri, 6 Jan 2023 15:49:18 -0500 Subject: [PATCH 013/166] Added Assembly Search Path to AOT compiler task. --- src/mono/mono/metadata/assembly.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mono/mono/metadata/assembly.c b/src/mono/mono/metadata/assembly.c index 6375754f97f04..8238a14be15fa 100644 --- a/src/mono/mono/metadata/assembly.c +++ b/src/mono/mono/metadata/assembly.c @@ -2719,6 +2719,9 @@ mono_assembly_load_corlib (void) /* FIXME: AOT compiler comes here without an installed hook. */ if (!corlib) { if (assemblies_path) { // Custom assemblies path set via MONO_PATH or mono_set_assemblies_path + for (int i = 0; assemblies_path[i]; i++){ + printf("!!!naricc_debug!!!: assembly.c: assemblies_path[%d]: %s\n", i, assemblies_path[i]); + } char *corlib_name = g_strdup_printf ("%s.dll", MONO_ASSEMBLY_CORLIB_NAME); corlib = load_in_path (corlib_name, (const char**)assemblies_path, &req, &status); g_free (corlib_name); From b4a1215eaf83231eebf3ae9a6b0d887f959da772 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 6 Jan 2023 15:55:36 -0500 Subject: [PATCH 014/166] Added DevTeamProvisioning --- src/tests/build.proj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 7571d7679a5f9..1c108d1d04825 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -399,7 +399,8 @@ Assemblies="@(_AotInputAssemblies)" AotModulesTablePath="$(BundleDir)\modules.m" AotModulesTableLanguage="ObjC" - IntermediateOutputPath="$(_MobileIntermediateOutputPath)"> + IntermediateOutputPath="$(_MobileIntermediateOutputPath)" + AdditionalAssemblySearchPaths="$(CORE_ROOT)"> @@ -567,6 +568,7 @@ $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" + - From 6903ff2460ac6277f33b69da15465f705e09c729 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 9 Jan 2023 11:47:21 -0500 Subject: [PATCH 015/166] Fixed path for mono includes. --- src/tests/build.proj | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 1c108d1d04825..af2e77a018d0f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -282,9 +282,13 @@ True + + $(Category) - $(ArtifactsBinDir)microsoft.netcore.app.runtime.iossimulator-$(TargetArchitecture)/$(Configuration)/runtimes/iossimulator-$(TargetArchitecture) + iossimulator + ios + $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimePackOSSuffix)-$(TargetArchitecture)/$(Configuration)/runtimes/$(RuntimePackOSSuffix)-$(TargetArchitecture) $(MicrosoftNetCoreAppRuntimePackDir)/native @@ -386,6 +390,7 @@ <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe + - @@ -408,6 +413,7 @@ <_AppleAssembliesInternal Include="@(_AOT_InternalForceInterpretAssemblies)" /> + $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" - - From 3ddf12b375e3f178df2b4c3afc5466bc7e25a61f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 10 Jan 2023 11:28:24 -0500 Subject: [PATCH 016/166] Switched to new merged template. --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index f6fc87e2fb17e..300554f99b8db 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -75,4 +75,4 @@ jobs: buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml \ No newline at end of file diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 442a59b5ebe7a..2df114bdb313d 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -79,4 +79,4 @@ jobs: buildArgs: -s mono+libs -c $(_BuildConfig) /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml \ No newline at end of file + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml \ No newline at end of file From 0f25ad66d1a9a9f28d2c9e6921b96b2c8bb8a627 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 11 Jan 2023 15:06:15 -0500 Subject: [PATCH 017/166] Added parameters to just build a subset of tests. --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 1 + .../extra-platforms/runtime-extra-platforms-ioslike.yml | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 651ecdeed5b4f..7e380c63a3fbe 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -19,6 +19,7 @@ parameters: variables: {} pool: '' dependsOn: [] + testSubsetArgs: '' #arcade-specific parameters condition: always() continueOnError: false diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 300554f99b8db..2f663aea91634 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -75,4 +75,6 @@ jobs: buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml \ No newline at end of file + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + testSubsetArgs:"-tree:./src/tests/JIT" \ No newline at end of file From 4d18d41b0e3eb13fbc9697646994a9783b3fbfa4 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 11 Jan 2023 15:41:23 -0500 Subject: [PATCH 018/166] Fixed testSubsetArgs parameter. --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 2f663aea91634..619278e5cf90c 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -77,4 +77,4 @@ jobs: # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: - testSubsetArgs:"-tree:./src/tests/JIT" \ No newline at end of file + testSubsetArgs: -tree:./src/tests/JIT \ No newline at end of file From b9726c85177781030feb441812ecbfbf1d4cd898 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 13 Jan 2023 13:56:26 -0500 Subject: [PATCH 019/166] Exclude tests. --- src/tests/issues.targets | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b17c1dbcf555b..794b0478a53d7 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4020,7 +4020,11 @@ +<<<<<<< HEAD +======= + +>>>>>>> 4b360f4d24e (Exclude tests.) missing assembly @@ -4258,7 +4262,13 @@ - + + + needs triage + + + + mobile and wasm don't support tests with native libraries. wasm also needs static linking From 6c6a7e6693f39d3cf5bf26442804ea70a1b9fc43 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 13 Jan 2023 16:52:59 -0500 Subject: [PATCH 020/166] Fix problem in issues.targets. --- src/tests/issues.targets | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 794b0478a53d7..b865bb25132a6 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4020,11 +4020,7 @@ -<<<<<<< HEAD - -======= ->>>>>>> 4b360f4d24e (Exclude tests.) missing assembly From ae686566d922d3a3dad313777c479217df240088 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 17 Jan 2023 11:33:11 -0500 Subject: [PATCH 021/166] Removed redundant app dir. --- src/mono/msbuild/apple/build/AppleApp.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index d13e7080901d7..eafa8c56f0c34 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -143,7 +143,6 @@ Date: Tue, 17 Jan 2023 13:48:11 -0500 Subject: [PATCH 022/166] Revert changes to AppleApp.targets. --- src/mono/msbuild/apple/build/AppleApp.targets | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index eafa8c56f0c34..30d72c6b916a5 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -142,27 +142,26 @@ - InvariantGlobalization="$(InvariantGlobalization)" - ForceInterpreter="$(MonoForceInterpreter)" - EnableAppSandbox="$(EnableAppSandbox)"> From 55cc52cbf1377185d5a73eee95856f252b43aa53 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 18 Jan 2023 10:49:15 -0500 Subject: [PATCH 023/166] More test exclusions. --- src/tests/issues.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b865bb25132a6..c75bc01d7eb6f 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4262,6 +4262,9 @@ needs triage + + needs triage + From 55f7208c460ee7f1d4bb08224bfd1d1360caa4bf Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 18 Jan 2023 11:36:42 -0500 Subject: [PATCH 024/166] Exclude llvm tests on iOS. --- src/tests/issues.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index c75bc01d7eb6f..a1184c211b73d 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2687,7 +2687,7 @@ - + needs triage @@ -3265,8 +3265,8 @@ - - + + https://github.com/dotnet/runtime/issues/57350 From 02bfbb34dac3fed2b9e6ca8d8ddec662736a73c6 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 18 Jan 2023 11:38:05 -0500 Subject: [PATCH 025/166] Exclude llvm tests on iOS. --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index a1184c211b73d..38436c7518e67 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3181,7 +3181,7 @@ - + https://github.com/dotnet/runtime/issues/48914 From a44366cb86cee85123aabd8b19646107f9aa4734 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 18 Jan 2023 20:07:21 -0500 Subject: [PATCH 026/166] Added missing quote. --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 38436c7518e67..3bf6e67c464c9 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3181,7 +3181,7 @@ - + https://github.com/dotnet/runtime/issues/48914 From 603883a5ae4a247072b737c858aab78d9c611690 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 19 Jan 2023 09:17:10 -0500 Subject: [PATCH 027/166] Updated issues.targets --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 3bf6e67c464c9..fd301131a0005 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4258,7 +4258,7 @@ - + needs triage From d14c1979bee228e0127b9379bf968daa5833447d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 22 Jan 2023 18:56:24 -0500 Subject: [PATCH 028/166] Added missing ios RID. --- src/tests/Common/helixpublishwitharcade.proj | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index a92da0f62efca..6eb24f4e70d38 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -161,6 +161,7 @@ browser-wasm android-$(TargetArchitecture) iossimulator-$(TargetArchitecture) + ios-$(TargetArchitecture) @@ -551,7 +552,7 @@ + DestinationFile="$(LegacyPayloadsRootDirectory)\%(LegacyPayloads.PayloadGroup).zip" /> @@ -588,7 +589,7 @@ $([System.TimeSpan]::FromMinutes($(TimeoutPerTestInMinutes)).TotalMilliseconds) true <_XUnitParallelMode>collections - <_XUnitParallelMode Condition=" '$(TargetsAndroid)' == 'true' or '$(TargetsiOSSimulator)' == 'true'">none + <_XUnitParallelMode Condition=" '$(TargetsAndroid)' == 'true' or '$(TargetsiOSSimulator)' == 'true' or '$(TargetsiOS)' == 'true'">none <_XUnitParallelMode Condition=" '$(LongRunningGCTests)' == 'true' ">none <_XUnitParallelMode Condition=" '$(GcSimulatorTests)' == 'true' ">none -parallel $(_XUnitParallelMode) -nocolor -noshadow -xml testResults.xml From 0e512955a884e66970f5ae665076c9393d1d4a30 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 26 Jan 2023 10:54:59 -0500 Subject: [PATCH 029/166] Added device queues. --- .../coreclr/templates/helix-queues-setup.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index d1ca07cf6c63d..3f86a18e579c6 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -48,6 +48,22 @@ jobs: - ${{ if eq(parameters.platform, 'browser_wasm') }}: - Ubuntu.1804.Amd64.Open + # iOS devices + - ${{ if in(parameters.platform, 'ios_arm64') }}: + # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) + - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: + - OSX.1015.Amd64.Iphone.Open + - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: + - OSX.1200.Amd64.Iphone.Open + + # tvOS devices + - ${{ if in(parameters.platform, 'tvos_arm64') }}: + # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) + - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: + - OSX.1015.Amd64.AppleTV.Open + - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: + - OSX.1100.Amd64.AppleTV.Open + # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: From 455e375fb076b187d89cd9d219533e0cb2217d8d Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:38:37 -0500 Subject: [PATCH 030/166] Align libraries AppleAppBuilder parameters order --- src/mono/msbuild/apple/build/AppleApp.targets | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index 30d72c6b916a5..d13e7080901d7 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -142,26 +142,28 @@ + InvariantGlobalization="$(InvariantGlobalization)" + ForceInterpreter="$(MonoForceInterpreter)" + EnableAppSandbox="$(EnableAppSandbox)"> From d5411e3e3152c2832c72b201de99d07e8c1e76d3 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:50:22 -0500 Subject: [PATCH 031/166] [build] Enable diagnostics on iOS runtime tests From 0de94eac69eee590046296e753b7693800f59da6 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 13:50:45 -0500 Subject: [PATCH 032/166] [test] Reenable buffersize runtime test on iOS --- src/tests/issues.targets | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index fd301131a0005..6aecfd7cd8e6d 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4211,6 +4211,12 @@ missing assembly + + https://github.com/dotnet/runtime/issues/74891 + + + https://github.com/dotnet/runtime/issues/74891 + https://github.com/dotnet/runtime/issues/74891 From e7415c68f537c308f20e52af4845c12b5a19d5ac Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 2 Dec 2022 14:29:51 -0500 Subject: [PATCH 033/166] [tests] Reenable diagnostic_tracing tests not involving subprocesses --- src/tests/issues.targets | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 6aecfd7cd8e6d..fd301131a0005 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4211,12 +4211,6 @@ missing assembly - - https://github.com/dotnet/runtime/issues/74891 - - - https://github.com/dotnet/runtime/issues/74891 - https://github.com/dotnet/runtime/issues/74891 From e6e035ed032cc9d8f9dcc01d59e6aa9ba50cd95f Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 16 Dec 2022 18:29:55 -0500 Subject: [PATCH 034/166] [pipelines] Add iOS/tvOS device/simulator arm64 runtime tests job --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 619278e5cf90c..a46dafe10891c 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -77,4 +77,4 @@ jobs: # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: - testSubsetArgs: -tree:./src/tests/JIT \ No newline at end of file + testSubsetArgs: -tree:./src/tests/JIT diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 2df114bdb313d..a5478bf82ffec 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -79,4 +79,4 @@ jobs: buildArgs: -s mono+libs -c $(_BuildConfig) /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml \ No newline at end of file + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml From 2ec873633fafe211670dd8b020c92a702d4cc700 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Mon, 19 Dec 2022 13:04:52 -0500 Subject: [PATCH 035/166] [pipelines] Add necessary parameters for iOSlike platforms From 59e830fcacd0cfe32575a927bbc3934ac879a10b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 19 Dec 2022 16:56:13 -0500 Subject: [PATCH 036/166] Propagate DevTeamProvisioning on iOS.{ From 9ba79552dbf4846af2ec9e2f9b33b201bf44da73 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 6 Jan 2023 15:49:18 -0500 Subject: [PATCH 037/166] Added Assembly Search Path to AOT compiler task. From 554d871b35b5f829d90651555b83471ba722949d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 6 Jan 2023 15:55:36 -0500 Subject: [PATCH 038/166] Added DevTeamProvisioning --- src/tests/build.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index af2e77a018d0f..654b3b859fb0d 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -574,6 +574,7 @@ $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" + - From 3ea1514b45297993609b9cc25cce9d8408edb976 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 9 Jan 2023 11:47:21 -0500 Subject: [PATCH 039/166] Fixed path for mono includes. --- src/tests/build.proj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 654b3b859fb0d..af2e77a018d0f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -574,7 +574,6 @@ $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" - - From c8705ad94bde20be329c074cf796b055a7990f34 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 13 Jan 2023 13:56:26 -0500 Subject: [PATCH 040/166] Exclude tests. --- src/tests/issues.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index fd301131a0005..4c75e9693d830 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4020,6 +4020,7 @@ + missing assembly From d13378e2e8e6b804a41c082a2f58b73de624c19f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 13 Jan 2023 16:52:59 -0500 Subject: [PATCH 041/166] Fix problem in issues.targets. --- src/tests/issues.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 4c75e9693d830..fd301131a0005 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4020,7 +4020,6 @@ - missing assembly From fcf09b98f6b1c63b946293d74cef953d4ce8a62f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 17 Jan 2023 11:33:11 -0500 Subject: [PATCH 042/166] Removed redundant app dir. --- src/mono/msbuild/apple/build/AppleApp.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index d13e7080901d7..eafa8c56f0c34 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -143,7 +143,6 @@ Date: Tue, 17 Jan 2023 13:48:11 -0500 Subject: [PATCH 043/166] Revert changes to AppleApp.targets. --- src/mono/msbuild/apple/build/AppleApp.targets | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleApp.targets b/src/mono/msbuild/apple/build/AppleApp.targets index eafa8c56f0c34..30d72c6b916a5 100644 --- a/src/mono/msbuild/apple/build/AppleApp.targets +++ b/src/mono/msbuild/apple/build/AppleApp.targets @@ -142,27 +142,26 @@ - InvariantGlobalization="$(InvariantGlobalization)" - ForceInterpreter="$(MonoForceInterpreter)" - EnableAppSandbox="$(EnableAppSandbox)"> From cc1885f1830875abdbabbeefa567e891c9c3a73b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 18 Jan 2023 10:49:15 -0500 Subject: [PATCH 044/166] More test exclusions. From cec9b68248f1df50b9b487c11e57f598309a1c64 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 29 Jan 2023 14:38:40 -0500 Subject: [PATCH 045/166] Updated bash scripts for ios. --- src/tests/Common/CLRTest.Execute.Bash.targets | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 27557752e3137..cd0fc6606d952 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,6 +60,10 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') + -simulator' + 64 + arm64 + - + Date: Tue, 31 Jan 2023 13:55:37 -0500 Subject: [PATCH 046/166] Removed extra quote. --- src/tests/Common/CLRTest.Execute.Bash.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index cd0fc6606d952..bb54b02fc447c 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,7 +60,7 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') - -simulator' + -simulator 64 arm64 From 2e52b71067ad518228cd2dab8a5f1085a57a6f2f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 31 Jan 2023 16:25:09 -0500 Subject: [PATCH 047/166] Fix typos. --- src/tests/Common/CLRTest.Execute.Bash.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index bb54b02fc447c..fac230f05a72e 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -61,8 +61,8 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') -simulator - 64 - arm64 + 64 + arm64 Date: Thu, 2 Feb 2023 13:25:45 -0500 Subject: [PATCH 048/166] Quote fix. --- src/tests/Common/CLRTest.Execute.Bash.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index fac230f05a72e..3f9dd33612455 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,7 +60,7 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') - -simulator + -simulator 64 arm64 From 6a4659e5f9bfc6d692c4cc4b528acd0208b58464 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 2 Feb 2023 14:04:55 -0500 Subject: [PATCH 049/166] Added more missing quotes and )'s. --- src/tests/Common/CLRTest.Execute.Bash.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 3f9dd33612455..248168a04eea0 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -61,8 +61,8 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') -simulator - 64 - arm64 + 64 + arm64 - + Date: Fri, 3 Feb 2023 15:39:33 -0500 Subject: [PATCH 050/166] Updated app bundles to use device. --- src/tests/Common/helixpublishwitharcade.proj | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 6eb24f4e70d38..4a82fcac59d55 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -840,8 +840,9 @@ - ios-simulator-64 - ios-simulator-64 + ios-simulator-64 + ios-simulator-64 + ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) @@ -849,8 +850,9 @@ --set-env=TestExclusionListPath=TestExclusionList.txt - ios-simulator-64 - ios-simulator-64 + ios-simulator-64 + ios-simulator-64 + ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) From 222394f53b19e0d191ac153fec0d3e16014d0dfe Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 3 Feb 2023 21:16:02 -0500 Subject: [PATCH 051/166] Added missing and --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 4a82fcac59d55..ed3990736c40a 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -841,7 +841,7 @@ ios-simulator-64 - ios-simulator-64 + ios-simulator-64 ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) From 31aa7177041d6d68d841e260e73055e7cff3000d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 6 Feb 2023 14:56:31 -0500 Subject: [PATCH 052/166] Updated .NET CLI properties. --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index ed3990736c40a..3cb3f83c0b748 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -109,7 +109,7 @@ SuperPmiCollect=$(_SuperPmiCollect) - <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true'"> + <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargeOS)' == 'iOS'"> $(_PropertiesToPass); IncludeDotNetCli=$(IncludeDotNetCli); DotNetCliRuntime=$(DotNetCliRuntime); From a1c98e5ff10009eba6c8a6dcea9b81c6bcee6535 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 6 Feb 2023 16:13:50 -0500 Subject: [PATCH 053/166] Fixed typo in TargetOS. --- src/tests/Common/helixpublishwitharcade.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 3cb3f83c0b748..a6b6e49f25316 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -109,13 +109,13 @@ SuperPmiCollect=$(_SuperPmiCollect) - <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargeOS)' == 'iOS'"> + <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargetOS)' == 'iOS'"> $(_PropertiesToPass); IncludeDotNetCli=$(IncludeDotNetCli); DotNetCliRuntime=$(DotNetCliRuntime); DotNetCliPackageType=$(DotNetCliPackageType); DotNetCliVersion=$(DotNetCliVersion) - + /vi/f5uk6C1iDkQ/mqdefault.jpg From 8762c73a51edafec59ed20245d8a36d72ed86cee Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 6 Feb 2023 16:21:42 -0500 Subject: [PATCH 054/166] Get rid of spurious text. --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index a6b6e49f25316..27cd762df5b83 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -115,7 +115,7 @@ DotNetCliRuntime=$(DotNetCliRuntime); DotNetCliPackageType=$(DotNetCliPackageType); DotNetCliVersion=$(DotNetCliVersion) - /vi/f5uk6C1iDkQ/mqdefault.jpg + From 5e9c5e5114a2627a47178ef95239f3988aa5f29b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 7 Feb 2023 16:10:33 -0500 Subject: [PATCH 055/166] Updated MobileAppHandler to use devices. --- .../Coreclr.TestWrapper/MobileAppHandler.cs | 24 ++++++++++++++----- src/tests/xunit-wrappers.targets | 4 ++-- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs index aef07d4ff186f..e36dd4ac25d6f 100644 --- a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs +++ b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs @@ -22,17 +22,17 @@ public class MobileAppHandler // 91 - ADB_FAILURE private static readonly int[] _knownExitCodes = new int[] { 78, 81, 82, 83, 84, 86, 88, 89, 90, 91 }; - public int InstallMobileApp(string platform, string category, string testBinaryBase, string reportBase) + public int InstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, bool device = false) { - return HandleMobileApp("install", platform, category, testBinaryBase, reportBase); + return HandleMobileApp("install", platform, category, testBinaryBase, reportBase, device); } - public int UninstallMobileApp(string platform, string category, string testBinaryBase, string reportBase) + public int UninstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, bool device = false) { - return HandleMobileApp("uninstall", platform, category, testBinaryBase, reportBase); + return HandleMobileApp("uninstall", platform, category, testBinaryBase, reportBase, device); } - private static int HandleMobileApp(string action, string platform, string category, string testBinaryBase, string reportBase) + private static int HandleMobileApp(string action, string platform, string category, string testBinaryBase, string reportBase, bool device=false) { int exitCode = -100; @@ -82,7 +82,19 @@ private static int HandleMobileApp(string action, string platform, string catego } else // platform is apple { - cmdStr += $" --output-directory={reportBase}/{action} --target=ios-simulator-64"; //To Do: target should be either emulator or device + + string targetString; + + if (device) + { + targetString = "ios-device"; + } + else + { + targetString = "ios-simulator-64"; + } + + cmdStr += $" --output-directory={reportBase}/{action} --target={targetString}"; //To Do: target should be either emulator or device if (action == "install") { diff --git a/src/tests/xunit-wrappers.targets b/src/tests/xunit-wrappers.targets index 222e6e4c4f53f..1730a0ea9a979 100644 --- a/src/tests/xunit-wrappers.targets +++ b/src/tests/xunit-wrappers.targets @@ -219,14 +219,14 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). string operatingSystem = Environment.GetEnvironmentVariable("OS")%3B runningInWindows = (operatingSystem != null && operatingSystem.StartsWith("Windows"))%3B - retCode = handler.InstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase)%3B + retCode = handler.InstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, device: String.Equals(%22$(TargetOS)%22, %22ios%22, StringComparison.OrdinalIgnoreCase))%3B Assert.True(retCode == 0, "Failed to install mobile app.")%3B } public void Dispose() { int retCode = -100%3B - retCode = handler.UninstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase)%3B + retCode = handler.UninstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, device: String.Equals(%22$(TargetOS)%22, %22ios%22, StringComparison.OrdinalIgnoreCase))%3B Assert.True(retCode == 0, "Failed to uninstall mobile app.")%3B } } From 69c63b349af6f527e4cee667f7b6ad427b267815 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 7 Feb 2023 20:55:04 -0500 Subject: [PATCH 056/166] Changed to adhoc signing. --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index af2e77a018d0f..28695069920cd 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -390,7 +390,7 @@ <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe - - + adhoc From 175903c8842ea501b737c144e8e9cf5e5b261776 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 8 Feb 2023 14:59:17 -0500 Subject: [PATCH 057/166] Put DebTeamProvisioning back to - --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 28695069920cd..af2e77a018d0f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -390,7 +390,7 @@ <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe - adhoc + - From 81af2443d5aeec8e8877a68b711b7877c6f8ee40 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 9 Feb 2023 10:58:42 -0500 Subject: [PATCH 058/166] Added bash code to move signing file. --- src/tests/Common/helixpublishwitharcade.proj | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 27cd762df5b83..6d7f9ccbbdd35 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -24,7 +24,7 @@ c:\gh\runtime c:\bugs\spmicollect3\payload\correlation - c:\bugs\spmicollect3\payload\workitem + c:\bugs\es\payload\workitem <_Scenarios>normal <_Creator> <_HelixAccessToken> @@ -765,6 +765,7 @@ %(FileName)%(Extension) $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).apk $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).app + %(FileName)%(Extension)/%(FileName)%(Extension).app @@ -817,6 +818,14 @@ + + + + + + %(PayloadDirectory) @@ -837,15 +846,15 @@ net.dot.%(PayloadGroup) net.dot.MonoRunner $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) + ios-simulator-64 - ios-simulator-64 ios-simulator-64 ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) - dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) - dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) + $(MoveSigningFileCommand); $dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) + $(MoveSigningFileCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From b6d4e1ae5c26470a52ec99007c33424d2c10d96c Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 9 Feb 2023 15:02:24 -0500 Subject: [PATCH 059/166] Updated signing command. --- src/tests/Common/helixpublishwitharcade.proj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 6d7f9ccbbdd35..a30f2e57b4f5e 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -819,11 +819,11 @@ - + - + @@ -853,8 +853,8 @@ ios-simulator-64 ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) - $(MoveSigningFileCommand); $dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) - $(MoveSigningFileCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) + $(SigningCommand); $dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) + $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From efed81957f1f0b879c032ddb6b07f7b55b435970 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 10 Feb 2023 10:19:27 -0500 Subject: [PATCH 060/166] Use back ticks instead of --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index a30f2e57b4f5e..0d15ebbbc6a90 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -821,7 +821,7 @@ From c27d2c4e168d8dd8adacb27f9294ecfe048e328b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 10 Feb 2023 13:31:54 -0500 Subject: [PATCH 061/166] Try hardcoding signing loop. --- src/tests/Common/helixpublishwitharcade.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 0d15ebbbc6a90..0845bad297ba0 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -853,8 +853,8 @@ ios-simulator-64 ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) - $(SigningCommand); $dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) - $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) + $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) + for APP_FILE in `find . -name *.app`; do cp embedded.mobileprovision $APP_FILE; sign $APP_FILE; done; dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From 41446ae211640316ef0150478f94a57adbd312bb Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 10 Feb 2023 13:52:55 -0500 Subject: [PATCH 062/166] Fixed extra line in bash command. --- src/tests/Common/helixpublishwitharcade.proj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 0845bad297ba0..01a83d1c52cfa 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -821,8 +821,7 @@ + for APP_FILE in `find . -name *.app`; do cp embedded.mobileprovision $APP_FILE; sign $APP_FILE; done]]> @@ -854,7 +853,7 @@ ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) - for APP_FILE in `find . -name *.app`; do cp embedded.mobileprovision $APP_FILE; sign $APP_FILE; done; dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) + $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From ec24c1003b65a3b461f841afcc3dc26c605c443d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 10 Feb 2023 21:23:03 -0500 Subject: [PATCH 063/166] Fixed suffix on test target. --- src/tests/Common/CLRTest.Execute.Bash.targets | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 248168a04eea0..b989d0cd9400f 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,10 +60,9 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') - -simulator - 64 - arm64 - + -simulator-64 + -simulator + -device Date: Sat, 11 Feb 2023 14:46:46 -0500 Subject: [PATCH 064/166] Simplified test. --- src/tests/baseservices/mono/runningmono.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/baseservices/mono/runningmono.cs b/src/tests/baseservices/mono/runningmono.cs index 9ccbcce11f98a..5a18fde79bbe5 100644 --- a/src/tests/baseservices/mono/runningmono.cs +++ b/src/tests/baseservices/mono/runningmono.cs @@ -9,16 +9,16 @@ class Program public static int Main() { const int Pass = 100, Fail = 1; - bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; + /*bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; if(isMono) - { + {*/ return Pass; - } + /*} else { return Fail; - } + }*/ } } } From 31f330d3f154dc19366df486dbf25313ecf2ba95 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 17 Feb 2023 12:18:08 -0500 Subject: [PATCH 065/166] Try to add test assembly. --- src/tests/build.proj | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index af2e77a018d0f..686cae364e529 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -368,6 +368,8 @@ <_MobileIntermediateOutputPath>$([MSBuild]::NormalizeDirectory($(IntermediateOutputPath), 'mobile')) + + <_AppleAssembliesInternal Include="$(BuildDir)/*.dll" /> <_AppleAssembliesInternal> @@ -381,6 +383,13 @@ $(ProcessArguments) + + + <_AotInputAssemblies Include="$(BuildDir)/testdir*/*.dll"> + $(AotArguments) + $(ProcessArguments) + + <_AOT_InternalForceInterpretAssemblies Include="@(_AppleAssembliesInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" /> <_AppleAssembliesInternal Remove="@(_AppleAssembliesInternal)" /> @@ -413,7 +422,10 @@ <_AppleAssembliesInternal Include="@(_AOT_InternalForceInterpretAssemblies)" /> - + + + + Date: Fri, 17 Feb 2023 15:15:42 -0500 Subject: [PATCH 066/166] Updated wild card for assemblies. --- src/tests/build.proj | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 686cae364e529..6a48271473d93 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -371,7 +371,8 @@ - <_AppleAssembliesInternal Include="$(BuildDir)/*.dll" /> + <_AppleAssembliesInternal Include="$(BuildDir)/**/*.dll" /> + <_AppleAssembliesInternal> <_InternalForceInterpret Condition="'$(MonoForceInterpreter)' == 'true' and '%(FileName)%(Extension)' != 'System.Private.CoreLib.dll'">true <_IsNative>false @@ -383,13 +384,6 @@ $(ProcessArguments) - - - <_AotInputAssemblies Include="$(BuildDir)/testdir*/*.dll"> - $(AotArguments) - $(ProcessArguments) - - <_AOT_InternalForceInterpretAssemblies Include="@(_AppleAssembliesInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" /> <_AppleAssembliesInternal Remove="@(_AppleAssembliesInternal)" /> @@ -424,8 +418,8 @@ - - + + Date: Fri, 17 Feb 2023 16:13:02 -0500 Subject: [PATCH 067/166] Include more assemblies. --- src/tests/build.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 6a48271473d93..d3ac3e1794a45 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -372,7 +372,8 @@ <_AppleAssembliesInternal Include="$(BuildDir)/**/*.dll" /> - + <_AppleAssembliesInternal Include="$(BuildDir)/*.dll" /> + <_AppleAssembliesInternal> <_InternalForceInterpret Condition="'$(MonoForceInterpreter)' == 'true' and '%(FileName)%(Extension)' != 'System.Private.CoreLib.dll'">true <_IsNative>false From 07cb55945b96dfb1a99aec951835da079c284067 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 17 Feb 2023 20:54:02 -0500 Subject: [PATCH 068/166] runningmono.cs --- src/tests/baseservices/mono/runningmono.cs | 8 ++++---- src/tests/build.proj | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/tests/baseservices/mono/runningmono.cs b/src/tests/baseservices/mono/runningmono.cs index 5a18fde79bbe5..9ccbcce11f98a 100644 --- a/src/tests/baseservices/mono/runningmono.cs +++ b/src/tests/baseservices/mono/runningmono.cs @@ -9,16 +9,16 @@ class Program public static int Main() { const int Pass = 100, Fail = 1; - /*bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; + bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; if(isMono) - {*/ + { return Pass; - /*} + } else { return Fail; - }*/ + } } } } diff --git a/src/tests/build.proj b/src/tests/build.proj index d3ac3e1794a45..fc0fcb168adfc 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -372,7 +372,6 @@ <_AppleAssembliesInternal Include="$(BuildDir)/**/*.dll" /> - <_AppleAssembliesInternal Include="$(BuildDir)/*.dll" /> <_AppleAssembliesInternal> <_InternalForceInterpret Condition="'$(MonoForceInterpreter)' == 'true' and '%(FileName)%(Extension)' != 'System.Private.CoreLib.dll'">true From cf7634c48031afb3bf4016eb64ac8e2b69d9da31 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 20 Feb 2023 12:15:56 -0500 Subject: [PATCH 069/166] Run more tests. Exclude all llvmfullaot tests. --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index fd301131a0005..24d9106089dfc 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2821,7 +2821,7 @@ - + expected failure: overlapped structs fail at AOT compile time, not runtime From 4f5e4ae0a6b7f12e62db8c10cbc0b412318a5508 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 20 Feb 2023 15:15:28 -0500 Subject: [PATCH 070/166] Removed extra paren. --- src/tests/tracing/eventpipe/common/IpcTraceTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs index 4fbfd812d584c..9dcdd808d95f1 100644 --- a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs +++ b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs @@ -344,7 +344,7 @@ private int Validate(bool enableRundownProvider = true) // the process that created them, so we don't need to check on that platform. static public bool EnsureCleanEnvironment() { - if (!OperatingSystem.IsWindows() && !OperatingSystem.IsIOS() && !OperatingSystem.IsBrowser())) + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsIOS() && !OperatingSystem.IsBrowser()) { Func<(IEnumerable>, List)> getPidsAndSockets = () => { From b068443c50e224e9bc53a7770027850318e14db2 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 20 Feb 2023 21:58:34 -0500 Subject: [PATCH 071/166] Enable Trimming. --- eng/testing/ILLink.Descriptor.TestUtilities.xml | 5 ----- src/tests/Directory.Build.props | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/testing/ILLink.Descriptor.TestUtilities.xml b/eng/testing/ILLink.Descriptor.TestUtilities.xml index a4515fc865284..96712d63c3733 100644 --- a/eng/testing/ILLink.Descriptor.TestUtilities.xml +++ b/eng/testing/ILLink.Descriptor.TestUtilities.xml @@ -1,7 +1,2 @@ - - - - - diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index 77f4f8f7191c9..027903a097414 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -198,6 +198,11 @@ GeneratedRunner + + true + true + + From 73e83a8944ded23826844f5319e20046ae105311 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 20 Feb 2023 22:00:45 -0500 Subject: [PATCH 072/166] Adjust timeouts. --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index a46dafe10891c..4509172e0613d 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -68,12 +68,12 @@ jobs: - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes - value: 180 + value: 280 jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests + nameSuffix: AllSubsets_Mono_RunimeTests buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 240 + timeoutInMinutes: 300 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: From 83cc716f20e3837ce017762a561b507166ec512a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 09:11:35 -0500 Subject: [PATCH 073/166] Run only jit tests, adjust time out. --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 4509172e0613d..79e179ad958bf 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -73,7 +73,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_RunimeTests buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 300 + timeoutInMinutes: 500 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: From e54686c677a13c33a1697bac3379f13b2181e53a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 12:30:23 -0500 Subject: [PATCH 074/166] Handle TestUtilities linking correctly. --- eng/testing/ILLink.Descriptor.TestUtilities.xml | 5 +++++ src/tests/Directory.Build.props | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/eng/testing/ILLink.Descriptor.TestUtilities.xml b/eng/testing/ILLink.Descriptor.TestUtilities.xml index 96712d63c3733..a4515fc865284 100644 --- a/eng/testing/ILLink.Descriptor.TestUtilities.xml +++ b/eng/testing/ILLink.Descriptor.TestUtilities.xml @@ -1,2 +1,7 @@ + + + + + diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index 027903a097414..fe94c2b7a3d85 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -200,7 +200,8 @@ true - true + true + true From 5b1df05a7f82b0574e83eac2d2299d36233e73b5 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 12:38:06 -0500 Subject: [PATCH 075/166] more test exclusions. --- src/tests/issues.targets | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 24d9106089dfc..b5da6e87afe05 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4265,6 +4265,12 @@ needs triage + + Duplicate Symbol + + + Duplicate Symbol + From 521e344f7abcecb6906709fce17e934cdda6ab62 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 13:06:19 -0500 Subject: [PATCH 076/166] Fix syntax error. --- src/tests/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index fe94c2b7a3d85..500be60b2b9c4 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -201,7 +201,7 @@ true true - true + true From a8f01cfb01290a6ee1ae9a5b3a8daad47a08a7ec Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 14:05:43 -0500 Subject: [PATCH 077/166] Added missing / --- src/tests/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index 500be60b2b9c4..c57ae2d9ecc11 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -201,7 +201,7 @@ true true - true + true From 2cf4a1bd658d513a78d85a74269bb608cdd002f0 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 14:15:44 -0500 Subject: [PATCH 078/166] Fixed typo. --- src/tests/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index c57ae2d9ecc11..94342c98537f4 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -201,7 +201,7 @@ true true - true + true From 2501432c372dd435f748888088fe25dfa3a722ae Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Feb 2023 20:23:59 -0500 Subject: [PATCH 079/166] Don't generate CMake projects. --- src/tests/build.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index fc0fcb168adfc..8a0a768c847c7 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -438,7 +438,8 @@ DiagnosticPorts="$(DiagnosticPorts)" InvariantGlobalization="true" ForceInterpreter="$(MonoForceInterpreter)" - EnableAppSandbox="$(EnableAppSandbox)"> + EnableAppSandbox="$(EnableAppSandbox)" + GenerateCMakeProject="false"> From d5f0de538023d814ee568c403d27d39981c4bd0a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 22 Feb 2023 14:24:06 -0500 Subject: [PATCH 080/166] Try base services. --- src/tests/build.proj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 8a0a768c847c7..fc0fcb168adfc 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -438,8 +438,7 @@ DiagnosticPorts="$(DiagnosticPorts)" InvariantGlobalization="true" ForceInterpreter="$(MonoForceInterpreter)" - EnableAppSandbox="$(EnableAppSandbox)" - GenerateCMakeProject="false"> + EnableAppSandbox="$(EnableAppSandbox)"> From 7a86d5d4fc688b8dbd23ed4840268b07d85de769 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 23 Feb 2023 18:59:25 -0500 Subject: [PATCH 081/166] Disable a lot of tests for build time issue. --- src/tests/issues.targets | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b5da6e87afe05..47ab4dcc9dc14 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4265,11 +4265,35 @@ needs triage - - Duplicate Symbol + + Build time issue - - Duplicate Symbol + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue From 21ca133af5d0f1758840841897c30f0276eb4c82 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 23 Feb 2023 19:02:04 -0500 Subject: [PATCH 082/166] Got rid of test subset hack. --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 1 - .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 -- 2 files changed, 3 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 7e380c63a3fbe..651ecdeed5b4f 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -19,7 +19,6 @@ parameters: variables: {} pool: '' dependsOn: [] - testSubsetArgs: '' #arcade-specific parameters condition: always() continueOnError: false diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 79e179ad958bf..5682edb6d544c 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -76,5 +76,3 @@ jobs: timeoutInMinutes: 500 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - testSubsetArgs: -tree:./src/tests/JIT From 2658cfd20640584998cc4bc659efcf2eb2c3668f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 24 Feb 2023 11:53:35 -0500 Subject: [PATCH 083/166] Use variables template. --- eng/pipelines/common/global-build-job.yml | 4 ++++ .../runtime-extra-platforms-ioslike.yml | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f059b449b9467..26e5e063e95c0 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -123,6 +123,10 @@ jobs: - name: _monoAotCrossCompileArg value: 'cross' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - name: runtimeFlavorArgs + value: '-mono' + - ${{ each variableTemplate in parameters.extraVariablesTemplates }}: - template: ${{ variableTemplate.template }} parameters: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 5682edb6d544c..bbcf6949de928 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -68,11 +68,17 @@ jobs: - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes - value: 280 + value: 180 jobParameters: + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop testGroup: innerloop - nameSuffix: AllSubsets_Mono_RunimeTests + nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 500 + timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + testSubsetArgs: -tree:./src/tests/JIT From ee8b3ad1181bba6d8c1a3a74c1b8c97de0e2edb0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 10 Mar 2023 16:32:35 +0100 Subject: [PATCH 084/166] Remove debug log --- src/mono/mono/metadata/assembly.c | 3 --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/mono/mono/metadata/assembly.c b/src/mono/mono/metadata/assembly.c index 8238a14be15fa..6375754f97f04 100644 --- a/src/mono/mono/metadata/assembly.c +++ b/src/mono/mono/metadata/assembly.c @@ -2719,9 +2719,6 @@ mono_assembly_load_corlib (void) /* FIXME: AOT compiler comes here without an installed hook. */ if (!corlib) { if (assemblies_path) { // Custom assemblies path set via MONO_PATH or mono_set_assemblies_path - for (int i = 0; assemblies_path[i]; i++){ - printf("!!!naricc_debug!!!: assembly.c: assemblies_path[%d]: %s\n", i, assemblies_path[i]); - } char *corlib_name = g_strdup_printf ("%s.dll", MONO_ASSEMBLY_CORLIB_NAME); corlib = load_in_path (corlib_name, (const char**)assemblies_path, &req, &status); g_free (corlib_name); diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 01a83d1c52cfa..ca0d32670cb61 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -552,7 +552,7 @@ + DestinationFile="$(LegacyPayloadsRootDirectory)\%(LegacyPayloads.PayloadGroup).zip" /> From 2a8467fc6f957ccf8cf9dc436669fa58fd2f6693 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 13 Mar 2023 15:29:04 +0100 Subject: [PATCH 085/166] Add dedup feature to improve build time --- src/tests/build.proj | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index fc0fcb168adfc..687727c80ddff 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -399,11 +399,31 @@ + + <_DedupAssembly>$(BuildDir)\aot-instances.dll + + + + + <_AotInputAssemblies Include="$(_DedupAssembly)"> + @(MonoAOTCompilerDefaultAotArguments, ';') + @(MonoAOTCompilerDefaultProcessArguments, ';') + + + Date: Thu, 16 Mar 2023 15:08:37 +0100 Subject: [PATCH 086/166] Update build arguments --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index bbcf6949de928..dedc5d1478b17 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -76,7 +76,7 @@ jobs: testGroup: innerloop testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildDarwinFrameworks=true + buildArgs: -s mono+clr.hosts -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml From cab14039654cda1ce2d29c015b2466eaeffc5cc1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:15:55 +0100 Subject: [PATCH 087/166] Don't run Build Tests step when runtimeFlavor is mono --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 651ecdeed5b4f..f33ef3992b9c0 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -29,10 +29,10 @@ parameters: shouldContinueOnError: false steps: - - ${{ if eq(parameters.osGroup, 'windows') }}: + - ${{ if and(eq(parameters.osGroup, 'windows'), ne(parameters.runtimeFlavor, 'mono')) }}: - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) ci ${{ parameters.archType }} $(buildConfigUpper) $(priorityArg) $(runtimeFlavorArgs) ${{ parameters.testBuildArgs }} $(runtimeVariantArg) /p:LibrariesConfiguration=${{ coalesce(parameters.liveLibrariesBuildConfig, parameters.buildConfig) }} displayName: Build Tests - - ${{ if ne(parameters.osGroup, 'windows') }}: + - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.runtimeFlavor, 'mono')) }}: - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) ci os ${{ parameters.osGroup }} ${{ parameters.archType }} $(buildConfigUpper) $(priorityArg) $(runtimeFlavorArgs) ${{ parameters.testBuildArgs }} $(runtimeVariantArg) /p:LibrariesConfiguration=${{ coalesce(parameters.liveLibrariesBuildConfig, parameters.buildConfig) }} displayName: Build Tests From c2f884aa189988895aaf251dd2f968e7170da2cc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:33:38 +0100 Subject: [PATCH 088/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 2763 +++++++++++++++++++------------------ 1 file changed, 1385 insertions(+), 1378 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8ca973341eb90..30da0ab23e917 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -63,1382 +63,1389 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build CoreCLR checked - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x86 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_arm - - linux_musl_arm64 - - linux_musl_x64 - - osx_arm64 - - tizen_armel - - windows_x86 - - windows_x64 - - windows_arm - - windows_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using GNU compiler toolchain - # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - container: debian-11-gcc12-amd64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR osx_x64 checked - # Only when CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR release - # Always as they are needed by Installer and we always build and test the Installer. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x64 - - windows_x86 - - windows_arm - - windows_arm64 - - freebsd_x64 - jobParameters: - testGroup: innerloop - # Mono/runtimetests also need this, but skip for wasm - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR Formatting Job - # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # both Rolling and PR builds). - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'main'), - eq(variables['System.PullRequest.TargetBranch'], 'main')), - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - eq(variables['isRollingBuild'], true))) - - # - # CoreCLR NativeAOT debug build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Debug - platforms: - - linux_x64 - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT checked build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Checked - platforms: - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and libraries tests - # Only when CoreCLR or library is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - platforms: - - windows_arm64 - - linux_arm64 - - osx_arm64 - jobParameters: - testGroup: innerloop - isSingleFile: true - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # Build and test clr tools - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - jobParameters: - testGroup: clrTools - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build Mono AOT offset headers once, for consumption elsewhere - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - buildConfig: release - platforms: - - android_x64 - - browser_wasm - - tvos_arm64 - - ios_arm64 - - maccatalyst_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - # needed by crossaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build the whole product using Mono runtime - # Only when libraries, mono or installer are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - tvossimulator_x64 - - linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_musl_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # WebAssembly legs - # - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - runAOT: false - shouldRunSmokeOnly: false - alwaysRun: ${{ variables.isRollingBuild }} - - # AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm_win - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm.Build.Tests - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm Debugger tests - - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm runtime tests - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - - # BUILD ONLY - Wasm Threading Legs - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading - extraBuildArgs: /p:MonoWasmBuildVariant=multithread - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_PerfTracing - extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - alwaysRun: ${{ variables.isRollingBuild }} - - # WASI/WASM - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - shouldContinueOnError: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - ios_arm64 - - tvos_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # MacCatalyst interp - requires AOT Compilation and Interp flags - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - maccatalyst_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - maccatalyst_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMJIT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMAOT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono debug - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release AOT cross-compilers - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - android - - browser - - tvos - - ios - - maccatalyst - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_arm64 - - osx_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries, mono, or the runtime tests changed - # Currently only these architectures are needed for the runtime tests. - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - - linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release with LLVM AOT - # Only when mono, or the runtime tests changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build libraries using live CoreLib - # These set of libraries are built always no matter what changed - # The reason for that is because Corelib and Installer needs it and - # These are part of the test matrix for Libraries changes. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_arm - - linux_musl_arm - - linux_musl_arm64 - - windows_arm - - windows_arm64 - - windows_x86 - jobParameters: - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - linux_musl_x64 - - linux_x64 - - osx_arm64 - - osx_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - testScope: innerloop - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries debug build that only runs when coreclr is changed - # Only do this on PR builds since we use the Release builds for these test runs in CI - # and those are already built above - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Debug - platforms: - - windows_x86 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - # Libraries release build that only runs when coreclr is changed in PRs - # We need these for checked coreclr + release libraries tests runs. - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Installer Build and Test - # These are always built since they only take like 15 minutes - # we expect these to be done before we finish libraries or coreclr testing. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_musl_arm - - linux_musl_arm64 - - windows_x86 - - windows_arm - - windows_arm64 - - linux_arm - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm64 - - linux_musl_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test builds using live libraries release build - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test executions using live libraries - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - linux_arm - - windows_x86 - - windows_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_x64 - - linux_x64 - - linux_arm64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # Only when Mono is changed - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: minijit - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # Only when Mono is changed - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # - # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # Only when Mono is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - timeoutInMinutes: 180 - - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Libraries Release Test Execution against a release mono runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - - osx_x64 - - linux_arm64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release mono interpreter runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - #- osx_x64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Debug Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # The next three jobs run checked coreclr + libraries tests. - # The matrix looks like the following, where the right columns specify which configurations - # the libraries tests are built in. - # ________________________________________ - # | Platform | PR | Rolling | - # | ---------------- | ------- | ------- | - # | linux-arm64 | Debug | Release | - # | windows-x86 | Debug | Release | - # | linux-musl-x64 | Debug | Release | - # | OSX-x64 | Debug | Release | - # | linux-musl-arm | Release | Release | - # | linux-musl-arm64 | Release | Release | - # | linux-x64 | Release | Release | - # | windows-x64 | Release | Release | - - # - # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # Only when the PR contains a coreclr change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - windows_x86 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Release Libraries Test Execution against a checked runtime - # Only if CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - linux_musl_arm - - linux_musl_arm64 - - linux_x64 - - windows_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - osx_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Sourcebuild legs - # We have 3 important legs for source-build: - # - Centos.7 (ensures that RH keeps working) - # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # - # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, - # Run Linux-x64 in PR. - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_centos7_x64 - jobParameters: - nameSuffix: centos7SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) - - - template: /eng/pipelines/common/platform-matrix.yml + # # + # # Build CoreCLR checked + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x86 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_musl_x64 + # - osx_arm64 + # - tizen_armel + # - windows_x86 + # - windows_x64 + # - windows_arm + # - windows_arm64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using GNU compiler toolchain + # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # container: debian-11-gcc12-amd64 + # jobParameters: + # testGroup: innerloop + # compilerName: gcc + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR osx_x64 checked + # # Only when CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR release + # # Always as they are needed by Installer and we always build and test the Installer. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - freebsd_x64 + # jobParameters: + # testGroup: innerloop + # # Mono/runtimetests also need this, but skip for wasm + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR Formatting Job + # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # # both Rolling and PR builds). + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # and( + # or( + # eq(variables['Build.SourceBranchName'], 'main'), + # eq(variables['System.PullRequest.TargetBranch'], 'main')), + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + # eq(variables['isRollingBuild'], true))) + + # # + # # CoreCLR NativeAOT debug build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Debug + # platforms: + # - linux_x64 + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT checked build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Checked + # platforms: + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and libraries tests + # # Only when CoreCLR or library is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - windows_arm64 + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # isSingleFile: true + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # Build and test clr tools + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: clrTools + # timeoutInMinutes: 120 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build Mono AOT offset headers once, for consumption elsewhere + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + # buildConfig: release + # platforms: + # - android_x64 + # - browser_wasm + # - tvos_arm64 + # - ios_arm64 + # - maccatalyst_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # # needed by crossaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build the whole product using Mono runtime + # # Only when libraries, mono or installer are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - tvossimulator_x64 + # - linux_arm + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_musl_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # WebAssembly legs + # # + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # # EAT Library tests - only run on linux + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _EAT + # runAOT: false + # shouldRunSmokeOnly: false + # alwaysRun: ${{ variables.isRollingBuild }} + + # # AOT Library tests + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm.Build.Tests + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm Debugger tests + # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm runtime tests + # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + + # # BUILD ONLY - Wasm Threading Legs + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_PerfTracing + # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + # alwaysRun: ${{ variables.isRollingBuild }} + + # # WASI/WASM + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # nameSuffix: '_Smoke' + # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + # shouldContinueOnError: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # + # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # # Build the whole product using Mono and run libraries tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - ios_arm64 + # - tvos_arm64 + # variables: + # # map dependencies variables to local variables + # - name: librariesContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # - name: monoContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + # condition: >- + # or( + # eq(variables['librariesContainsChange'], true), + # eq(variables['monoContainsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # MacCatalyst interp - requires AOT Compilation and Interp flags + # # Build the whole product using Mono and run libraries tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - maccatalyst_x64 + # - ${{ if eq(variables['isRollingBuild'], true) }}: + # - maccatalyst_arm64 + # variables: + # # map dependencies variables to local variables + # - name: librariesContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # - name: monoContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # condition: >- + # or( + # eq(variables['librariesContainsChange'], true), + # eq(variables['monoContainsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMJIT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMAOT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono debug + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: debug + # platforms: + # - osx_x64 + # - osx_arm64 + # - linux_x64 + # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release AOT cross-compilers + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # - mono_tvos_offsets + # - mono_ios_offsets + # - mono_maccatalyst_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # - tvos + # - ios + # - maccatalyst + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries, mono, or the runtime tests changed + # # Currently only these architectures are needed for the runtime tests. + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # - linux_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release with LLVM AOT + # # Only when mono, or the runtime tests changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # runtimeVariant: llvmaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build libraries using live CoreLib + # # These set of libraries are built always no matter what changed + # # The reason for that is because Corelib and Installer needs it and + # # These are part of the test matrix for Libraries changes. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_arm + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_arm + # - windows_arm64 + # - windows_x86 + # jobParameters: + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - linux_musl_x64 + # - linux_x64 + # - osx_arm64 + # - osx_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # testScope: innerloop + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries debug build that only runs when coreclr is changed + # # Only do this on PR builds since we use the Release builds for these test runs in CI + # # and those are already built above + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Debug + # platforms: + # - windows_x86 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # # + # # Libraries release build that only runs when coreclr is changed in PRs + # # We need these for checked coreclr + release libraries tests runs. + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # framework: net48 + # runTests: true + # testScope: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # jobParameters: + # framework: allConfigurations + # runTests: true + # useHelix: false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Installer Build and Test + # # These are always built since they only take like 15 minutes + # # we expect these to be done before we finish libraries or coreclr testing. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - linux_arm + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - linux_musl_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test builds using live libraries release build + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: checked + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test executions using live libraries + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - linux_arm + # - windows_x86 + # - windows_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # # Only when Mono is changed + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # liveRuntimeBuildConfig: release + # runtimeVariant: minijit + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using Mono and run runtime tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # # Only when Mono is changed + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + # runtimeVariant: monointerpreter + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # + # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # # Only when Mono is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + # #- linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + # runtimeVariant: llvmaot + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + # timeoutInMinutes: 180 + + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Libraries Release Test Execution against a release mono runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # - osx_x64 + # - linux_arm64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # runtimeDisplayName: mono + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release mono interpreter runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # #- osx_x64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # interpreter: true + # runtimeDisplayName: mono_interpreter + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Debug Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # The next three jobs run checked coreclr + libraries tests. + # # The matrix looks like the following, where the right columns specify which configurations + # # the libraries tests are built in. + # # ________________________________________ + # # | Platform | PR | Rolling | + # # | ---------------- | ------- | ------- | + # # | linux-arm64 | Debug | Release | + # # | windows-x86 | Debug | Release | + # # | linux-musl-x64 | Debug | Release | + # # | OSX-x64 | Debug | Release | + # # | linux-musl-arm | Release | Release | + # # | linux-musl-arm64 | Release | Release | + # # | linux-x64 | Release | Release | + # # | windows-x64 | Release | Release | + + # # + # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # # Only when the PR contains a coreclr change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - windows_x86 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Release Libraries Test Execution against a checked runtime + # # Only if CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_x64 + # - windows_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - osx_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Sourcebuild legs + # # We have 3 important legs for source-build: + # # - Centos.7 (ensures that RH keeps working) + # # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # # + # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, + # # Run Linux-x64 in PR. + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_centos7_x64 + # jobParameters: + # nameSuffix: centos7SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_banana24_x64 + # jobParameters: + # nameSuffix: banana24SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) + + # Add iOS/tvOS jobs + - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_banana24_x64 - jobParameters: - nameSuffix: banana24SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) + isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }} + isRollingBuild: ${{ variables.isRollingBuild }} From 54891e32197b6724f33eb839a94b1d14e8ef9abd Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:37:38 +0100 Subject: [PATCH 089/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 75 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 30da0ab23e917..e13ced366a899 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1444,8 +1444,75 @@ extends: # condition: eq(variables['isRollingBuild'], true) # Add iOS/tvOS jobs - - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Mono and run libraries tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} + buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + + # + # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices + # + - template: /eng/pipelines/common/platform-matrix.yml parameters: - isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }} - isRollingBuild: ${{ variables.isRollingBuild }} + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - iOS_arm64 + - tvOS_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+clr.hosts -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + timeoutInMinutes: 240 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + testSubsetArgs: -tree:./src/tests/JIT From bdbc4157329feefdabef66698fc9969e70d53ff9 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:39:59 +0100 Subject: [PATCH 090/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 90 +++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index e13ced366a899..9476af9681069 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -518,47 +518,47 @@ extends: # - wasi_wasm_win # alwaysRun: ${{ variables.isRollingBuild }} - # # - # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # # Build the whole product using Mono and run libraries tests - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - ios_arm64 - # - tvos_arm64 - # variables: - # # map dependencies variables to local variables - # - name: librariesContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - # - name: monoContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - # condition: >- - # or( - # eq(variables['librariesContainsChange'], true), - # eq(variables['monoContainsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Mono and run libraries tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - ios_arm64 + - tvos_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isRollingBuild'], true)) # # # # MacCatalyst interp - requires AOT Compilation and Interp flags @@ -1454,8 +1454,8 @@ extends: helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml buildConfig: Release runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - ios_arm64 - tvos_arm64 @@ -1487,8 +1487,8 @@ extends: helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - iOS_arm64 - tvOS_arm64 From 7d22e67c7185ed9389ec923c570d54426628e7fd Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:44:07 +0100 Subject: [PATCH 091/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 74 --------------------------------------- 1 file changed, 74 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9476af9681069..a9ca1c494d763 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1442,77 +1442,3 @@ extends: # name: SourceBuildPackages # timeoutInMinutes: 95 # condition: eq(variables['isRollingBuild'], true) - - # Add iOS/tvOS jobs - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} - buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - - # - # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - iOS_arm64 - - tvOS_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+clr.hosts -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 240 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - testSubsetArgs: -tree:./src/tests/JIT From 14dd0b1973177f53dd1cb43a1d8b3132108ee190 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:45:49 +0100 Subject: [PATCH 092/166] Revert changes in runtime.yml --- eng/pipelines/runtime.yml | 2672 ++++++++++++++++++------------------- 1 file changed, 1336 insertions(+), 1336 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index a9ca1c494d763..8ca973341eb90 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -63,460 +63,460 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build CoreCLR checked - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x86 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_musl_x64 - # - osx_arm64 - # - tizen_armel - # - windows_x86 - # - windows_x64 - # - windows_arm - # - windows_arm64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using GNU compiler toolchain - # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x64 - # container: debian-11-gcc12-amd64 - # jobParameters: - # testGroup: innerloop - # compilerName: gcc - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR osx_x64 checked - # # Only when CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR release - # # Always as they are needed by Installer and we always build and test the Installer. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - # - freebsd_x64 - # jobParameters: - # testGroup: innerloop - # # Mono/runtimetests also need this, but skip for wasm - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR Formatting Job - # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # # both Rolling and PR builds). - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # and( - # or( - # eq(variables['Build.SourceBranchName'], 'main'), - # eq(variables['System.PullRequest.TargetBranch'], 'main')), - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - # eq(variables['isRollingBuild'], true))) - - # # - # # CoreCLR NativeAOT debug build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Debug - # platforms: - # - linux_x64 - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT checked build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Checked - # platforms: - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and libraries tests - # # Only when CoreCLR or library is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # platforms: - # - windows_arm64 - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # testGroup: innerloop - # isSingleFile: true - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # Build and test clr tools - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: clrTools - # timeoutInMinutes: 120 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build Mono AOT offset headers once, for consumption elsewhere - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - # buildConfig: release - # platforms: - # - android_x64 - # - browser_wasm - # - tvos_arm64 - # - ios_arm64 - # - maccatalyst_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # # needed by crossaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build the whole product using Mono runtime - # # Only when libraries, mono or installer are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - tvossimulator_x64 - # - linux_arm - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_musl_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # WebAssembly legs - # # - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - # - WasmTestOnBrowser - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - WasmTestOnBrowser - - # # EAT Library tests - only run on linux - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _EAT - # runAOT: false - # shouldRunSmokeOnly: false - # alwaysRun: ${{ variables.isRollingBuild }} - - # # AOT Library tests - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm.Build.Tests - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm Debugger tests - # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm runtime tests - # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - - # # BUILD ONLY - Wasm Threading Legs - # - template: /eng/pipelines/common/templates/wasm-build-only.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading - # extraBuildArgs: /p:MonoWasmBuildVariant=multithread - # alwaysRun: ${{ variables.isRollingBuild }} - - # - template: /eng/pipelines/common/templates/wasm-build-only.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading_PerfTracing - # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - # alwaysRun: ${{ variables.isRollingBuild }} - - # # WASI/WASM - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # nameSuffix: '_Smoke' - # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - # shouldContinueOnError: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} + # + # Build CoreCLR checked + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x86 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_arm + - linux_musl_arm64 + - linux_musl_x64 + - osx_arm64 + - tizen_armel + - windows_x86 + - windows_x64 + - windows_arm + - windows_arm64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using GNU compiler toolchain + # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x64 + container: debian-11-gcc12-amd64 + jobParameters: + testGroup: innerloop + compilerName: gcc + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR osx_x64 checked + # Only when CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR release + # Always as they are needed by Installer and we always build and test the Installer. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_musl_arm + - linux_musl_arm64 + - windows_x64 + - windows_x86 + - windows_arm + - windows_arm64 + - freebsd_x64 + jobParameters: + testGroup: innerloop + # Mono/runtimetests also need this, but skip for wasm + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR Formatting Job + # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # both Rolling and PR builds). + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + and( + or( + eq(variables['Build.SourceBranchName'], 'main'), + eq(variables['System.PullRequest.TargetBranch'], 'main')), + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + eq(variables['isRollingBuild'], true))) + + # + # CoreCLR NativeAOT debug build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Debug + platforms: + - linux_x64 + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT checked build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Checked + platforms: + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and libraries tests + # Only when CoreCLR or library is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + platforms: + - windows_arm64 + - linux_arm64 + - osx_arm64 + jobParameters: + testGroup: innerloop + isSingleFile: true + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # Build and test clr tools + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x64 + jobParameters: + testGroup: clrTools + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build Mono AOT offset headers once, for consumption elsewhere + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + buildConfig: release + platforms: + - android_x64 + - browser_wasm + - tvos_arm64 + - ios_arm64 + - maccatalyst_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + # needed by crossaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build the whole product using Mono runtime + # Only when libraries, mono or installer are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - tvossimulator_x64 + - linux_arm + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_musl_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # WebAssembly legs + # + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + # EAT Library tests - only run on linux + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _EAT + runAOT: false + shouldRunSmokeOnly: false + alwaysRun: ${{ variables.isRollingBuild }} + + # AOT Library tests + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm_win + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm.Build.Tests + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm Debugger tests + - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm runtime tests + - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + + # BUILD ONLY - Wasm Threading Legs + - template: /eng/pipelines/common/templates/wasm-build-only.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading + extraBuildArgs: /p:MonoWasmBuildVariant=multithread + alwaysRun: ${{ variables.isRollingBuild }} + + - template: /eng/pipelines/common/templates/wasm-build-only.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_PerfTracing + extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + alwaysRun: ${{ variables.isRollingBuild }} + + # WASI/WASM + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + nameSuffix: '_Smoke' + extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + shouldContinueOnError: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size @@ -560,885 +560,885 @@ extends: eq(variables['monoContainsChange'], true), eq(variables['isRollingBuild'], true)) - # # - # # MacCatalyst interp - requires AOT Compilation and Interp flags - # # Build the whole product using Mono and run libraries tests - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - maccatalyst_x64 - # - ${{ if eq(variables['isRollingBuild'], true) }}: - # - maccatalyst_arm64 - # variables: - # # map dependencies variables to local variables - # - name: librariesContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - # - name: monoContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # condition: >- - # or( - # eq(variables['librariesContainsChange'], true), - # eq(variables['monoContainsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono and Installer on LLVMJIT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono and Installer on LLVMAOT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono debug - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: debug - # platforms: - # - osx_x64 - # - osx_arm64 - # - linux_x64 - # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release AOT cross-compilers - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # - mono_tvos_offsets - # - mono_ios_offsets - # - mono_maccatalyst_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # - tvos - # - ios - # - maccatalyst - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries, mono, or the runtime tests changed - # # Currently only these architectures are needed for the runtime tests. - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # - linux_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release with LLVM AOT - # # Only when mono, or the runtime tests changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # runtimeVariant: llvmaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build libraries using live CoreLib - # # These set of libraries are built always no matter what changed - # # The reason for that is because Corelib and Installer needs it and - # # These are part of the test matrix for Libraries changes. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_arm - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_arm - # - windows_arm64 - # - windows_x86 - # jobParameters: - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - linux_musl_x64 - # - linux_x64 - # - osx_arm64 - # - osx_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # testScope: innerloop - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries debug build that only runs when coreclr is changed - # # Only do this on PR builds since we use the Release builds for these test runs in CI - # # and those are already built above - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Debug - # platforms: - # - windows_x86 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # # - # # Libraries release build that only runs when coreclr is changed in PRs - # # We need these for checked coreclr + release libraries tests runs. - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # framework: net48 - # runTests: true - # testScope: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # jobParameters: - # framework: allConfigurations - # runTests: true - # useHelix: false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Installer Build and Test - # # These are always built since they only take like 15 minutes - # # we expect these to be done before we finish libraries or coreclr testing. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - # - linux_arm - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: Release - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: Release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - linux_musl_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test builds using live libraries release build - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: checked - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test executions using live libraries - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - linux_arm - # - windows_x86 - # - windows_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # # Only when Mono is changed - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # liveRuntimeBuildConfig: release - # runtimeVariant: minijit - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using Mono and run runtime tests - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - # runtimeVariant: minijit - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # # Only when Mono is changed - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - # runtimeVariant: monointerpreter - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # # - # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # # Only when Mono is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - # #- linux_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - # runtimeVariant: llvmaot - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - # timeoutInMinutes: 180 - - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Libraries Release Test Execution against a release mono runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # - osx_x64 - # - linux_arm64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # runtimeDisplayName: mono - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release mono interpreter runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # #- osx_x64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # interpreter: true - # runtimeDisplayName: mono_interpreter - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Debug Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # - osx_x64 - # - linux_x64 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # The next three jobs run checked coreclr + libraries tests. - # # The matrix looks like the following, where the right columns specify which configurations - # # the libraries tests are built in. - # # ________________________________________ - # # | Platform | PR | Rolling | - # # | ---------------- | ------- | ------- | - # # | linux-arm64 | Debug | Release | - # # | windows-x86 | Debug | Release | - # # | linux-musl-x64 | Debug | Release | - # # | OSX-x64 | Debug | Release | - # # | linux-musl-arm | Release | Release | - # # | linux-musl-arm64 | Release | Release | - # # | linux-x64 | Release | Release | - # # | windows-x64 | Release | Release | - - # # - # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # # Only when the PR contains a coreclr change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - windows_x86 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Release Libraries Test Execution against a checked runtime - # # Only if CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_x64 - # - windows_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - osx_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Sourcebuild legs - # # We have 3 important legs for source-build: - # # - Centos.7 (ensures that RH keeps working) - # # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # # - # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, - # # Run Linux-x64 in PR. - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_centos7_x64 - # jobParameters: - # nameSuffix: centos7SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_banana24_x64 - # jobParameters: - # nameSuffix: banana24SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) + # + # MacCatalyst interp - requires AOT Compilation and Interp flags + # Build the whole product using Mono and run libraries tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - maccatalyst_x64 + - ${{ if eq(variables['isRollingBuild'], true) }}: + - maccatalyst_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono and Installer on LLVMJIT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono and Installer on LLVMAOT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono debug + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: debug + platforms: + - osx_x64 + - osx_arm64 + - linux_x64 + - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release AOT cross-compilers + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - android + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + - mono_tvos_offsets + - mono_ios_offsets + - mono_maccatalyst_offsets + monoCrossAOTTargetOS: + - android + - browser + - tvos + - ios + - maccatalyst + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_arm64 + - osx_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_browser_offsets + monoCrossAOTTargetOS: + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries, mono, or the runtime tests changed + # Currently only these architectures are needed for the runtime tests. + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + - linux_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release with LLVM AOT + # Only when mono, or the runtime tests changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build libraries using live CoreLib + # These set of libraries are built always no matter what changed + # The reason for that is because Corelib and Installer needs it and + # These are part of the test matrix for Libraries changes. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_arm + - linux_musl_arm + - linux_musl_arm64 + - windows_arm + - windows_arm64 + - windows_x86 + jobParameters: + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - linux_musl_x64 + - linux_x64 + - osx_arm64 + - osx_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + testScope: innerloop + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries debug build that only runs when coreclr is changed + # Only do this on PR builds since we use the Release builds for these test runs in CI + # and those are already built above + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Debug + platforms: + - windows_x86 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # + # Libraries release build that only runs when coreclr is changed in PRs + # We need these for checked coreclr + release libraries tests runs. + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + jobParameters: + framework: allConfigurations + runTests: true + useHelix: false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Installer Build and Test + # These are always built since they only take like 15 minutes + # we expect these to be done before we finish libraries or coreclr testing. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_musl_arm + - linux_musl_arm64 + - windows_x86 + - windows_arm + - windows_arm64 + - linux_arm + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: Release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm64 + - linux_musl_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test builds using live libraries release build + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: checked + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test executions using live libraries + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - linux_arm + - windows_x86 + - windows_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_x64 + - linux_x64 + - linux_arm64 + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # Only when Mono is changed + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: minijit + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using Mono and run runtime tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + runtimeVariant: minijit + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # + # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # Only when Mono is changed + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + runtimeVariant: monointerpreter + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # + # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # Only when Mono is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + #- linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + runtimeVariant: llvmaot + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + timeoutInMinutes: 180 + + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # + # Libraries Release Test Execution against a release mono runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + - osx_x64 + - linux_arm64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release mono interpreter runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + #- osx_x64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Debug Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - osx_x64 + - linux_x64 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # The next three jobs run checked coreclr + libraries tests. + # The matrix looks like the following, where the right columns specify which configurations + # the libraries tests are built in. + # ________________________________________ + # | Platform | PR | Rolling | + # | ---------------- | ------- | ------- | + # | linux-arm64 | Debug | Release | + # | windows-x86 | Debug | Release | + # | linux-musl-x64 | Debug | Release | + # | OSX-x64 | Debug | Release | + # | linux-musl-arm | Release | Release | + # | linux-musl-arm64 | Release | Release | + # | linux-x64 | Release | Release | + # | windows-x64 | Release | Release | + + # + # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # Only when the PR contains a coreclr change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - windows_x86 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Release Libraries Test Execution against a checked runtime + # Only if CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - linux_musl_arm + - linux_musl_arm64 + - linux_x64 + - windows_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - osx_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Sourcebuild legs + # We have 3 important legs for source-build: + # - Centos.7 (ensures that RH keeps working) + # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # + # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, + # Run Linux-x64 in PR. + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_centos7_x64 + jobParameters: + nameSuffix: centos7SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_banana24_x64 + jobParameters: + nameSuffix: banana24SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) From 33439758afd0b406b803ff3c653dd3df48e451b0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:51:05 +0100 Subject: [PATCH 093/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 1980 ++++++++++++++++++------------------- 1 file changed, 990 insertions(+), 990 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8ca973341eb90..f3f3e91c92ef4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -367,156 +367,156 @@ extends: eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) - # Build the whole product using Mono runtime - # Only when libraries, mono or installer are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - tvossimulator_x64 - - linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_musl_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # WebAssembly legs - # - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - runAOT: false - shouldRunSmokeOnly: false - alwaysRun: ${{ variables.isRollingBuild }} - - # AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm_win - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm.Build.Tests - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm Debugger tests - - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm runtime tests - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - - # BUILD ONLY - Wasm Threading Legs - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading - extraBuildArgs: /p:MonoWasmBuildVariant=multithread - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_PerfTracing - extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - alwaysRun: ${{ variables.isRollingBuild }} - - # WASI/WASM - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - shouldContinueOnError: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} + # # Build the whole product using Mono runtime + # # Only when libraries, mono or installer are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - tvossimulator_x64 + # - linux_arm + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_musl_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # WebAssembly legs + # # + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # # EAT Library tests - only run on linux + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _EAT + # runAOT: false + # shouldRunSmokeOnly: false + # alwaysRun: ${{ variables.isRollingBuild }} + + # # AOT Library tests + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm.Build.Tests + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm Debugger tests + # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm runtime tests + # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + + # # BUILD ONLY - Wasm Threading Legs + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_PerfTracing + # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + # alwaysRun: ${{ variables.isRollingBuild }} + + # # WASI/WASM + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # nameSuffix: '_Smoke' + # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + # shouldContinueOnError: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size @@ -560,850 +560,850 @@ extends: eq(variables['monoContainsChange'], true), eq(variables['isRollingBuild'], true)) - # - # MacCatalyst interp - requires AOT Compilation and Interp flags - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - maccatalyst_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - maccatalyst_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMJIT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMAOT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono debug - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release AOT cross-compilers - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - android - - browser - - tvos - - ios - - maccatalyst - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # MacCatalyst interp - requires AOT Compilation and Interp flags + # # Build the whole product using Mono and run libraries tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - maccatalyst_x64 + # - ${{ if eq(variables['isRollingBuild'], true) }}: + # - maccatalyst_arm64 + # variables: + # # map dependencies variables to local variables + # - name: librariesContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # - name: monoContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # condition: >- + # or( + # eq(variables['librariesContainsChange'], true), + # eq(variables['monoContainsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMJIT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMAOT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono debug + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: debug + # platforms: + # - osx_x64 + # - osx_arm64 + # - linux_x64 + # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release AOT cross-compilers + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # - mono_tvos_offsets + # - mono_ios_offsets + # - mono_maccatalyst_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # - tvos + # - ios + # - maccatalyst + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries, mono, or the runtime tests changed + # # Currently only these architectures are needed for the runtime tests. + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # - linux_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release with LLVM AOT + # # Only when mono, or the runtime tests changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # runtimeVariant: llvmaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build libraries using live CoreLib + # # These set of libraries are built always no matter what changed + # # The reason for that is because Corelib and Installer needs it and + # # These are part of the test matrix for Libraries changes. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_arm + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_arm + # - windows_arm64 + # - windows_x86 + # jobParameters: + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - linux_musl_x64 + # - linux_x64 + # - osx_arm64 + # - osx_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # testScope: innerloop + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries debug build that only runs when coreclr is changed + # # Only do this on PR builds since we use the Release builds for these test runs in CI + # # and those are already built above + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Debug + # platforms: + # - windows_x86 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # # + # # Libraries release build that only runs when coreclr is changed in PRs + # # We need these for checked coreclr + release libraries tests runs. + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # framework: net48 + # runTests: true + # testScope: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # jobParameters: + # framework: allConfigurations + # runTests: true + # useHelix: false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Installer Build and Test + # # These are always built since they only take like 15 minutes + # # we expect these to be done before we finish libraries or coreclr testing. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - linux_arm + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - linux_musl_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test builds using live libraries release build + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: checked + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test executions using live libraries + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - linux_arm + # - windows_x86 + # - windows_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # # Only when Mono is changed + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # liveRuntimeBuildConfig: release + # runtimeVariant: minijit + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using Mono and run runtime tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # # Only when Mono is changed + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + # runtimeVariant: monointerpreter + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # + # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # # Only when Mono is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + # #- linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + # runtimeVariant: llvmaot + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + # timeoutInMinutes: 180 + + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Libraries Release Test Execution against a release mono runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # - osx_x64 + # - linux_arm64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # runtimeDisplayName: mono + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release mono interpreter runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # #- osx_x64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # interpreter: true + # runtimeDisplayName: mono_interpreter + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Debug Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_arm64 - - osx_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # The next three jobs run checked coreclr + libraries tests. + # The matrix looks like the following, where the right columns specify which configurations + # the libraries tests are built in. + # ________________________________________ + # | Platform | PR | Rolling | + # | ---------------- | ------- | ------- | + # | linux-arm64 | Debug | Release | + # | windows-x86 | Debug | Release | + # | linux-musl-x64 | Debug | Release | + # | OSX-x64 | Debug | Release | + # | linux-musl-arm | Release | Release | + # | linux-musl-arm64 | Release | Release | + # | linux-x64 | Release | Release | + # | windows-x64 | Release | Release | # - # Build Mono release - # Only when libraries or mono changed + # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # Only when the PR contains a coreclr change # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries, mono, or the runtime tests changed - # Currently only these architectures are needed for the runtime tests. - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - - linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release with LLVM AOT - # Only when mono, or the runtime tests changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build libraries using live CoreLib - # These set of libraries are built always no matter what changed - # The reason for that is because Corelib and Installer needs it and - # These are part of the test matrix for Libraries changes. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_arm - - linux_musl_arm - - linux_musl_arm64 - - windows_arm - - windows_arm64 - - windows_x86 - jobParameters: - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - linux_musl_x64 - - linux_x64 - - osx_arm64 - - osx_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - testScope: innerloop - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries debug build that only runs when coreclr is changed - # Only do this on PR builds since we use the Release builds for these test runs in CI - # and those are already built above - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Debug - platforms: - - windows_x86 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - # Libraries release build that only runs when coreclr is changed in PRs - # We need these for checked coreclr + release libraries tests runs. - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Installer Build and Test - # These are always built since they only take like 15 minutes - # we expect these to be done before we finish libraries or coreclr testing. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_musl_arm - - linux_musl_arm64 - - windows_x86 - - windows_arm - - windows_arm64 - - linux_arm - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm64 - - linux_musl_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test builds using live libraries release build - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test executions using live libraries - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - linux_arm - - windows_x86 - - windows_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_x64 - - linux_x64 - - linux_arm64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # Only when Mono is changed - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: minijit - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # Only when Mono is changed - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # - # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # Only when Mono is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - timeoutInMinutes: 180 - - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Libraries Release Test Execution against a release mono runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - - osx_x64 - - linux_arm64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release mono interpreter runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - #- osx_x64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Debug Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # The next three jobs run checked coreclr + libraries tests. - # The matrix looks like the following, where the right columns specify which configurations - # the libraries tests are built in. - # ________________________________________ - # | Platform | PR | Rolling | - # | ---------------- | ------- | ------- | - # | linux-arm64 | Debug | Release | - # | windows-x86 | Debug | Release | - # | linux-musl-x64 | Debug | Release | - # | OSX-x64 | Debug | Release | - # | linux-musl-arm | Release | Release | - # | linux-musl-arm64 | Release | Release | - # | linux-x64 | Release | Release | - # | windows-x64 | Release | Release | - - # - # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # Only when the PR contains a coreclr change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - windows_x86 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Release Libraries Test Execution against a checked runtime - # Only if CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - linux_musl_arm - - linux_musl_arm64 - - linux_x64 - - windows_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - osx_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - windows_x86 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Release Libraries Test Execution against a checked runtime + # # Only if CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_x64 + # - windows_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - osx_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) # # Sourcebuild legs From 11943e41552ec4a3b68e2eeda03b72d416d697e1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 16:56:45 +0100 Subject: [PATCH 094/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 792 +++++++++++++++++++------------------- 1 file changed, 399 insertions(+), 393 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index f3f3e91c92ef4..681a0047473dd 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -10,7 +10,6 @@ trigger: paths: include: - '*' - - docs/manpages/* exclude: - '**.md' - eng/Version.Details.xml @@ -37,7 +36,6 @@ pr: paths: include: - '*' - - docs/manpages/* exclude: - '**.md' - eng/Version.Details.xml @@ -63,309 +61,309 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build CoreCLR checked - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x86 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_arm - - linux_musl_arm64 - - linux_musl_x64 - - osx_arm64 - - tizen_armel - - windows_x86 - - windows_x64 - - windows_arm - - windows_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build CoreCLR checked + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x86 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_musl_x64 + # - osx_arm64 + # - tizen_armel + # - windows_x86 + # - windows_x64 + # - windows_arm + # - windows_arm64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build the whole product using GNU compiler toolchain - # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - container: debian-11-gcc12-amd64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build the whole product using GNU compiler toolchain + # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # container: debian-11-gcc12-amd64 + # jobParameters: + # testGroup: innerloop + # compilerName: gcc + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build CoreCLR osx_x64 checked - # Only when CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build CoreCLR osx_x64 checked + # # Only when CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build CoreCLR release - # Always as they are needed by Installer and we always build and test the Installer. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x64 - - windows_x86 - - windows_arm - - windows_arm64 - - freebsd_x64 - jobParameters: - testGroup: innerloop - # Mono/runtimetests also need this, but skip for wasm - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build CoreCLR release + # # Always as they are needed by Installer and we always build and test the Installer. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - freebsd_x64 + # jobParameters: + # testGroup: innerloop + # # Mono/runtimetests also need this, but skip for wasm + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build CoreCLR Formatting Job - # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # both Rolling and PR builds). - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'main'), - eq(variables['System.PullRequest.TargetBranch'], 'main')), - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - eq(variables['isRollingBuild'], true))) + # # + # # Build CoreCLR Formatting Job + # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # # both Rolling and PR builds). + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # and( + # or( + # eq(variables['Build.SourceBranchName'], 'main'), + # eq(variables['System.PullRequest.TargetBranch'], 'main')), + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + # eq(variables['isRollingBuild'], true))) - # - # CoreCLR NativeAOT debug build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Debug - platforms: - - linux_x64 - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) + # # + # # CoreCLR NativeAOT debug build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Debug + # platforms: + # - linux_x64 + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) - # - # CoreCLR NativeAOT checked build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Checked - platforms: - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) + # # + # # CoreCLR NativeAOT checked build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Checked + # platforms: + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) - # - # CoreCLR NativeAOT release build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) + # # + # # CoreCLR NativeAOT release build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) - # - # CoreCLR NativeAOT release build and libraries tests - # Only when CoreCLR or library is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - platforms: - - windows_arm64 - - linux_arm64 - - osx_arm64 - jobParameters: - testGroup: innerloop - isSingleFile: true - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) + # # + # # CoreCLR NativeAOT release build and libraries tests + # # Only when CoreCLR or library is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - windows_arm64 + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # isSingleFile: true + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isFullMatrix'], true)) - # Build and test clr tools - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - jobParameters: - testGroup: clrTools - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # Build and test clr tools + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: clrTools + # timeoutInMinutes: 120 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # Build Mono AOT offset headers once, for consumption elsewhere - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - buildConfig: release - platforms: - - android_x64 - - browser_wasm - - tvos_arm64 - - ios_arm64 - - maccatalyst_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - # needed by crossaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # Build Mono AOT offset headers once, for consumption elsewhere + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + # buildConfig: release + # platforms: + # - android_x64 + # - browser_wasm + # - tvos_arm64 + # - ios_arm64 + # - maccatalyst_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # # needed by crossaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) # # Build the whole product using Mono runtime # # Only when libraries, mono or installer are changed @@ -479,14 +477,17 @@ extends: # - browser_wasm # alwaysRun: ${{ variables.isRollingBuild }} - # # BUILD ONLY - Wasm Threading Legs - # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # # Build and Smoke Tests only - Wasm Threading Legs + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml # parameters: # platforms: # - browser_wasm - # nameSuffix: _Threading - # extraBuildArgs: /p:MonoWasmBuildVariant=multithread + # nameSuffix: _Threading_Smoke + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + # shouldRunSmokeOnly: true # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser # - template: /eng/pipelines/common/templates/wasm-build-only.yml # parameters: @@ -518,10 +519,10 @@ extends: # - wasi_wasm_win # alwaysRun: ${{ variables.isRollingBuild }} - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # + # # + # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # # Build the whole product using Mono and run libraries tests + # # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -564,43 +565,46 @@ extends: # # MacCatalyst interp - requires AOT Compilation and Interp flags # # Build the whole product using Mono and run libraries tests # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - maccatalyst_x64 - # - ${{ if eq(variables['isRollingBuild'], true) }}: - # - maccatalyst_arm64 - # variables: - # # map dependencies variables to local variables - # - name: librariesContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - # - name: monoContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # condition: >- - # or( - # eq(variables['librariesContainsChange'], true), - # eq(variables['monoContainsChange'], true), - # eq(variables['isRollingBuild'], true)) + # # + # # Disabled pending queue backup investigation + # # + # #- template: /eng/pipelines/common/platform-matrix.yml + # # parameters: + # # jobTemplate: /eng/pipelines/common/global-build-job.yml + # # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # # buildConfig: Release + # # runtimeFlavor: mono + # # platforms: + # # - maccatalyst_x64 + # # - ${{ if eq(variables['isRollingBuild'], true) }}: + # # - maccatalyst_arm64 + # # variables: + # # # map dependencies variables to local variables + # # - name: librariesContainsChange + # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # # - name: monoContainsChange + # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # # jobParameters: + # # testGroup: innerloop + # # nameSuffix: AllSubsets_Mono + # # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # # timeoutInMinutes: 180 + # # condition: >- + # # or( + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # # eq(variables['isRollingBuild'], true)) + # # # extra steps, run tests + # # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # # extraStepsParameters: + # # creator: dotnet-bot + # # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # # condition: >- + # # or( + # # eq(variables['librariesContainsChange'], true), + # # eq(variables['monoContainsChange'], true), + # # eq(variables['isRollingBuild'], true)) # # # # Build Mono and Installer on LLVMJIT mode @@ -963,6 +967,7 @@ extends: # condition: >- # or( # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), # eq(variables['isRollingBuild'], true)) # # @@ -1137,6 +1142,7 @@ extends: # runtimeFlavor: mono # platforms: # - osx_x64 + # - linux_arm64 # variables: # - name: timeoutPerTestInMinutes # value: 60 @@ -1328,25 +1334,25 @@ extends: # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), # eq(variables['isRollingBuild'], true)) - # The next three jobs run checked coreclr + libraries tests. - # The matrix looks like the following, where the right columns specify which configurations - # the libraries tests are built in. - # ________________________________________ - # | Platform | PR | Rolling | - # | ---------------- | ------- | ------- | - # | linux-arm64 | Debug | Release | - # | windows-x86 | Debug | Release | - # | linux-musl-x64 | Debug | Release | - # | OSX-x64 | Debug | Release | - # | linux-musl-arm | Release | Release | - # | linux-musl-arm64 | Release | Release | - # | linux-x64 | Release | Release | - # | windows-x64 | Release | Release | + # # The next three jobs run checked coreclr + libraries tests. + # # The matrix looks like the following, where the right columns specify which configurations + # # the libraries tests are built in. + # # ________________________________________ + # # | Platform | PR | Rolling | + # # | ---------------- | ------- | ------- | + # # | linux-arm64 | Debug | Release | + # # | windows-x86 | Debug | Release | + # # | linux-musl-x64 | Debug | Release | + # # | OSX-x64 | Debug | Release | + # # | linux-musl-arm | Release | Release | + # # | linux-musl-arm64 | Release | Release | + # # | linux-x64 | Release | Release | + # # | windows-x64 | Release | Release | - # - # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # Only when the PR contains a coreclr change - # + # # + # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # # Only when the PR contains a coreclr change + # # # - template: /eng/pipelines/common/platform-matrix.yml # parameters: # jobTemplate: /eng/pipelines/libraries/run-test-job.yml @@ -1405,40 +1411,40 @@ extends: # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), # eq(variables['isRollingBuild'], true)) - # - # Sourcebuild legs - # We have 3 important legs for source-build: - # - Centos.7 (ensures that RH keeps working) - # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # - # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, - # Run Linux-x64 in PR. + # # + # # Sourcebuild legs + # # We have 3 important legs for source-build: + # # - Centos.7 (ensures that RH keeps working) + # # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # # + # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, + # # Run Linux-x64 in PR. - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_centos7_x64 - jobParameters: - nameSuffix: centos7SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_centos7_x64 + # jobParameters: + # nameSuffix: centos7SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_banana24_x64 - jobParameters: - nameSuffix: banana24SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_banana24_x64 + # jobParameters: + # nameSuffix: banana24SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) \ No newline at end of file From bcf50765708e7fcfc211a8076cb11a1bc446a90f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 17:00:01 +0100 Subject: [PATCH 095/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 2698 ++++++++++++++++++------------------- 1 file changed, 1349 insertions(+), 1349 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 681a0047473dd..dc1f4e37a22bc 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -61,468 +61,468 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build CoreCLR checked - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x86 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_musl_x64 - # - osx_arm64 - # - tizen_armel - # - windows_x86 - # - windows_x64 - # - windows_arm - # - windows_arm64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using GNU compiler toolchain - # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x64 - # container: debian-11-gcc12-amd64 - # jobParameters: - # testGroup: innerloop - # compilerName: gcc - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR osx_x64 checked - # # Only when CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR release - # # Always as they are needed by Installer and we always build and test the Installer. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - # - freebsd_x64 - # jobParameters: - # testGroup: innerloop - # # Mono/runtimetests also need this, but skip for wasm - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR Formatting Job - # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # # both Rolling and PR builds). - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # and( - # or( - # eq(variables['Build.SourceBranchName'], 'main'), - # eq(variables['System.PullRequest.TargetBranch'], 'main')), - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - # eq(variables['isRollingBuild'], true))) - - # # - # # CoreCLR NativeAOT debug build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Debug - # platforms: - # - linux_x64 - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT checked build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Checked - # platforms: - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and libraries tests - # # Only when CoreCLR or library is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # platforms: - # - windows_arm64 - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # testGroup: innerloop - # isSingleFile: true - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # Build and test clr tools - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: clrTools - # timeoutInMinutes: 120 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build Mono AOT offset headers once, for consumption elsewhere - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - # buildConfig: release - # platforms: - # - android_x64 - # - browser_wasm - # - tvos_arm64 - # - ios_arm64 - # - maccatalyst_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # # needed by crossaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build the whole product using Mono runtime - # # Only when libraries, mono or installer are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - tvossimulator_x64 - # - linux_arm - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_musl_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # WebAssembly legs - # # - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - # - WasmTestOnBrowser - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - WasmTestOnBrowser - - # # EAT Library tests - only run on linux - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _EAT - # runAOT: false - # shouldRunSmokeOnly: false - # alwaysRun: ${{ variables.isRollingBuild }} - - # # AOT Library tests - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm.Build.Tests - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm Debugger tests - # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm runtime tests - # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Build and Smoke Tests only - Wasm Threading Legs - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading_Smoke - # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - WasmTestOnBrowser - - # - template: /eng/pipelines/common/templates/wasm-build-only.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading_PerfTracing - # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - # alwaysRun: ${{ variables.isRollingBuild }} - - # # WASI/WASM - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # nameSuffix: '_Smoke' - # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - # shouldContinueOnError: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # - # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # # Build the whole product using Mono and run libraries tests - # # + # + # Build CoreCLR checked + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x86 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_arm + - linux_musl_arm64 + - linux_musl_x64 + - osx_arm64 + - tizen_armel + - windows_x86 + - windows_x64 + - windows_arm + - windows_arm64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using GNU compiler toolchain + # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x64 + container: debian-11-gcc12-amd64 + jobParameters: + testGroup: innerloop + compilerName: gcc + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR osx_x64 checked + # Only when CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR release + # Always as they are needed by Installer and we always build and test the Installer. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_musl_arm + - linux_musl_arm64 + - windows_x64 + - windows_x86 + - windows_arm + - windows_arm64 + - freebsd_x64 + jobParameters: + testGroup: innerloop + # Mono/runtimetests also need this, but skip for wasm + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR Formatting Job + # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # both Rolling and PR builds). + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + and( + or( + eq(variables['Build.SourceBranchName'], 'main'), + eq(variables['System.PullRequest.TargetBranch'], 'main')), + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + eq(variables['isRollingBuild'], true))) + + # + # CoreCLR NativeAOT debug build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Debug + platforms: + - linux_x64 + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT checked build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Checked + platforms: + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and libraries tests + # Only when CoreCLR or library is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + platforms: + - windows_arm64 + - linux_arm64 + - osx_arm64 + jobParameters: + testGroup: innerloop + isSingleFile: true + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # Build and test clr tools + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x64 + jobParameters: + testGroup: clrTools + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build Mono AOT offset headers once, for consumption elsewhere + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + buildConfig: release + platforms: + - android_x64 + - browser_wasm + - tvos_arm64 + - ios_arm64 + - maccatalyst_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + # needed by crossaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build the whole product using Mono runtime + # Only when libraries, mono or installer are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - tvossimulator_x64 + - linux_arm + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_musl_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # WebAssembly legs + # + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + # EAT Library tests - only run on linux + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _EAT + runAOT: false + shouldRunSmokeOnly: false + alwaysRun: ${{ variables.isRollingBuild }} + + # AOT Library tests + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm_win + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm.Build.Tests + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm Debugger tests + - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm runtime tests + - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + + # Build and Smoke Tests only - Wasm Threading Legs + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_Smoke + extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-build-only.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_PerfTracing + extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + alwaysRun: ${{ variables.isRollingBuild }} + + # WASI/WASM + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + nameSuffix: '_Smoke' + extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + shouldContinueOnError: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Mono and run libraries tests + # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -561,890 +561,890 @@ extends: eq(variables['monoContainsChange'], true), eq(variables['isRollingBuild'], true)) - # # - # # MacCatalyst interp - requires AOT Compilation and Interp flags - # # Build the whole product using Mono and run libraries tests - # # - # # - # # Disabled pending queue backup investigation - # # - # #- template: /eng/pipelines/common/platform-matrix.yml - # # parameters: - # # jobTemplate: /eng/pipelines/common/global-build-job.yml - # # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # # buildConfig: Release - # # runtimeFlavor: mono - # # platforms: - # # - maccatalyst_x64 - # # - ${{ if eq(variables['isRollingBuild'], true) }}: - # # - maccatalyst_arm64 - # # variables: - # # # map dependencies variables to local variables - # # - name: librariesContainsChange - # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - # # - name: monoContainsChange - # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - # # jobParameters: - # # testGroup: innerloop - # # nameSuffix: AllSubsets_Mono - # # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # # timeoutInMinutes: 180 - # # condition: >- - # # or( - # # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # # eq(variables['isRollingBuild'], true)) - # # # extra steps, run tests - # # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # # extraStepsParameters: - # # creator: dotnet-bot - # # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # # condition: >- - # # or( - # # eq(variables['librariesContainsChange'], true), - # # eq(variables['monoContainsChange'], true), - # # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono and Installer on LLVMJIT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono and Installer on LLVMAOT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono debug - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: debug - # platforms: - # - osx_x64 - # - osx_arm64 - # - linux_x64 - # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release AOT cross-compilers - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # - mono_tvos_offsets - # - mono_ios_offsets - # - mono_maccatalyst_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # - tvos - # - ios - # - maccatalyst - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries, mono, or the runtime tests changed - # # Currently only these architectures are needed for the runtime tests. - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # - linux_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release with LLVM AOT - # # Only when mono, or the runtime tests changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # runtimeVariant: llvmaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build libraries using live CoreLib - # # These set of libraries are built always no matter what changed - # # The reason for that is because Corelib and Installer needs it and - # # These are part of the test matrix for Libraries changes. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_arm - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_arm - # - windows_arm64 - # - windows_x86 - # jobParameters: - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - linux_musl_x64 - # - linux_x64 - # - osx_arm64 - # - osx_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # testScope: innerloop - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries debug build that only runs when coreclr is changed - # # Only do this on PR builds since we use the Release builds for these test runs in CI - # # and those are already built above - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Debug - # platforms: - # - windows_x86 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # # - # # Libraries release build that only runs when coreclr is changed in PRs - # # We need these for checked coreclr + release libraries tests runs. - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # framework: net48 - # runTests: true - # testScope: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # jobParameters: - # framework: allConfigurations - # runTests: true - # useHelix: false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Installer Build and Test - # # These are always built since they only take like 15 minutes - # # we expect these to be done before we finish libraries or coreclr testing. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - # - linux_arm - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: Release - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: Release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - linux_musl_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test builds using live libraries release build - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: checked - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test executions using live libraries - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - linux_arm - # - windows_x86 - # - windows_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # # Only when Mono is changed - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # liveRuntimeBuildConfig: release - # runtimeVariant: minijit - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using Mono and run runtime tests - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # - linux_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - # runtimeVariant: minijit - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # # Only when Mono is changed - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - # runtimeVariant: monointerpreter - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # # - # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # # Only when Mono is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - # #- linux_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - # runtimeVariant: llvmaot - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - # timeoutInMinutes: 180 - - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Libraries Release Test Execution against a release mono runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # - osx_x64 - # - linux_arm64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # runtimeDisplayName: mono - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release mono interpreter runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # #- osx_x64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # interpreter: true - # runtimeDisplayName: mono_interpreter - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Debug Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # - osx_x64 - # - linux_x64 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # The next three jobs run checked coreclr + libraries tests. - # # The matrix looks like the following, where the right columns specify which configurations - # # the libraries tests are built in. - # # ________________________________________ - # # | Platform | PR | Rolling | - # # | ---------------- | ------- | ------- | - # # | linux-arm64 | Debug | Release | - # # | windows-x86 | Debug | Release | - # # | linux-musl-x64 | Debug | Release | - # # | OSX-x64 | Debug | Release | - # # | linux-musl-arm | Release | Release | - # # | linux-musl-arm64 | Release | Release | - # # | linux-x64 | Release | Release | - # # | windows-x64 | Release | Release | - - # # - # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # # Only when the PR contains a coreclr change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - windows_x86 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Release Libraries Test Execution against a checked runtime - # # Only if CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_x64 - # - windows_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - osx_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Sourcebuild legs - # # We have 3 important legs for source-build: - # # - Centos.7 (ensures that RH keeps working) - # # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # # - # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, - # # Run Linux-x64 in PR. - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_centos7_x64 - # jobParameters: - # nameSuffix: centos7SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_banana24_x64 - # jobParameters: - # nameSuffix: banana24SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) \ No newline at end of file + # + # MacCatalyst interp - requires AOT Compilation and Interp flags + # Build the whole product using Mono and run libraries tests + # + # + # Disabled pending queue backup investigation + # + #- template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - maccatalyst_x64 + # - ${{ if eq(variables['isRollingBuild'], true) }}: + # - maccatalyst_arm64 + # variables: + # # map dependencies variables to local variables + # - name: librariesContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # - name: monoContainsChange + # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # condition: >- + # or( + # eq(variables['librariesContainsChange'], true), + # eq(variables['monoContainsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # + # Build Mono and Installer on LLVMJIT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono and Installer on LLVMAOT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono debug + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: debug + platforms: + - osx_x64 + - osx_arm64 + - linux_x64 + - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release AOT cross-compilers + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - android + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + - mono_tvos_offsets + - mono_ios_offsets + - mono_maccatalyst_offsets + monoCrossAOTTargetOS: + - android + - browser + - tvos + - ios + - maccatalyst + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_arm64 + - osx_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_browser_offsets + monoCrossAOTTargetOS: + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries, mono, or the runtime tests changed + # Currently only these architectures are needed for the runtime tests. + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + - linux_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release with LLVM AOT + # Only when mono, or the runtime tests changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build libraries using live CoreLib + # These set of libraries are built always no matter what changed + # The reason for that is because Corelib and Installer needs it and + # These are part of the test matrix for Libraries changes. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_arm + - linux_musl_arm + - linux_musl_arm64 + - windows_arm + - windows_arm64 + - windows_x86 + jobParameters: + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - linux_musl_x64 + - linux_x64 + - osx_arm64 + - osx_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + testScope: innerloop + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries debug build that only runs when coreclr is changed + # Only do this on PR builds since we use the Release builds for these test runs in CI + # and those are already built above + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Debug + platforms: + - windows_x86 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # + # Libraries release build that only runs when coreclr is changed in PRs + # We need these for checked coreclr + release libraries tests runs. + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + jobParameters: + framework: allConfigurations + runTests: true + useHelix: false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Installer Build and Test + # These are always built since they only take like 15 minutes + # we expect these to be done before we finish libraries or coreclr testing. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_musl_arm + - linux_musl_arm64 + - windows_x86 + - windows_arm + - windows_arm64 + - linux_arm + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: Release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm64 + - linux_musl_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test builds using live libraries release build + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: checked + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test executions using live libraries + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - linux_arm + - windows_x86 + - windows_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_x64 + - linux_x64 + - linux_arm64 + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # Only when Mono is changed + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: minijit + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using Mono and run runtime tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + - linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + runtimeVariant: minijit + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # + # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # Only when Mono is changed + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + runtimeVariant: monointerpreter + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # + # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # Only when Mono is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + #- linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + runtimeVariant: llvmaot + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + timeoutInMinutes: 180 + + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # + # Libraries Release Test Execution against a release mono runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + - osx_x64 + - linux_arm64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release mono interpreter runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + #- osx_x64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Debug Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - osx_x64 + - linux_x64 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # The next three jobs run checked coreclr + libraries tests. + # The matrix looks like the following, where the right columns specify which configurations + # the libraries tests are built in. + # ________________________________________ + # | Platform | PR | Rolling | + # | ---------------- | ------- | ------- | + # | linux-arm64 | Debug | Release | + # | windows-x86 | Debug | Release | + # | linux-musl-x64 | Debug | Release | + # | OSX-x64 | Debug | Release | + # | linux-musl-arm | Release | Release | + # | linux-musl-arm64 | Release | Release | + # | linux-x64 | Release | Release | + # | windows-x64 | Release | Release | + + # + # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # Only when the PR contains a coreclr change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - windows_x86 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Release Libraries Test Execution against a checked runtime + # Only if CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - linux_musl_arm + - linux_musl_arm64 + - linux_x64 + - windows_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - osx_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Sourcebuild legs + # We have 3 important legs for source-build: + # - Centos.7 (ensures that RH keeps working) + # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # + # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, + # Run Linux-x64 in PR. + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_centos7_x64 + jobParameters: + nameSuffix: centos7SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_banana24_x64 + jobParameters: + nameSuffix: banana24SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) \ No newline at end of file From 7df230c3e9b37dcb01491beefba9bf9997d5532b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 17:02:02 +0100 Subject: [PATCH 096/166] TESTING ONLY - Disable all CI jobs and enable ioslike only --- eng/pipelines/runtime.yml | 2696 ++++++++++++++++++------------------- 1 file changed, 1348 insertions(+), 1348 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index dc1f4e37a22bc..2d103b3a7aef3 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -62,467 +62,467 @@ extends: - template: /eng/pipelines/common/evaluate-default-paths.yml # - # Build CoreCLR checked - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x86 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_arm - - linux_musl_arm64 - - linux_musl_x64 - - osx_arm64 - - tizen_armel - - windows_x86 - - windows_x64 - - windows_arm - - windows_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using GNU compiler toolchain - # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - container: debian-11-gcc12-amd64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR osx_x64 checked - # Only when CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR release - # Always as they are needed by Installer and we always build and test the Installer. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x64 - - windows_x86 - - windows_arm - - windows_arm64 - - freebsd_x64 - jobParameters: - testGroup: innerloop - # Mono/runtimetests also need this, but skip for wasm - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR Formatting Job - # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # both Rolling and PR builds). - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'main'), - eq(variables['System.PullRequest.TargetBranch'], 'main')), - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - eq(variables['isRollingBuild'], true))) - - # - # CoreCLR NativeAOT debug build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Debug - platforms: - - linux_x64 - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT checked build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Checked - platforms: - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and libraries tests - # Only when CoreCLR or library is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - platforms: - - windows_arm64 - - linux_arm64 - - osx_arm64 - jobParameters: - testGroup: innerloop - isSingleFile: true - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # Build and test clr tools - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x64 - jobParameters: - testGroup: clrTools - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build Mono AOT offset headers once, for consumption elsewhere - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - buildConfig: release - platforms: - - android_x64 - - browser_wasm - - tvos_arm64 - - ios_arm64 - - maccatalyst_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - # needed by crossaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build the whole product using Mono runtime - # Only when libraries, mono or installer are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - tvossimulator_x64 - - linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_musl_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # WebAssembly legs - # - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - runAOT: false - shouldRunSmokeOnly: false - alwaysRun: ${{ variables.isRollingBuild }} - - # AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm_win - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm.Build.Tests - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm Debugger tests - - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm runtime tests - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - - # Build and Smoke Tests only - Wasm Threading Legs - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_Smoke - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_PerfTracing - extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - alwaysRun: ${{ variables.isRollingBuild }} - - # WASI/WASM - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - shouldContinueOnError: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # + # # Build CoreCLR checked + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x86 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_musl_x64 + # - osx_arm64 + # - tizen_armel + # - windows_x86 + # - windows_x64 + # - windows_arm + # - windows_arm64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using GNU compiler toolchain + # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # container: debian-11-gcc12-amd64 + # jobParameters: + # testGroup: innerloop + # compilerName: gcc + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR osx_x64 checked + # # Only when CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR release + # # Always as they are needed by Installer and we always build and test the Installer. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - freebsd_x64 + # jobParameters: + # testGroup: innerloop + # # Mono/runtimetests also need this, but skip for wasm + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR Formatting Job + # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # # both Rolling and PR builds). + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # and( + # or( + # eq(variables['Build.SourceBranchName'], 'main'), + # eq(variables['System.PullRequest.TargetBranch'], 'main')), + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + # eq(variables['isRollingBuild'], true))) + + # # + # # CoreCLR NativeAOT debug build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Debug + # platforms: + # - linux_x64 + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT checked build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Checked + # platforms: + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot /p:BuildNativeAotFrameworkObjects=true + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and libraries tests + # # Only when CoreCLR or library is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - windows_arm64 + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # isSingleFile: true + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # Build and test clr tools + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: clrTools + # timeoutInMinutes: 120 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build Mono AOT offset headers once, for consumption elsewhere + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + # buildConfig: release + # platforms: + # - android_x64 + # - browser_wasm + # - tvos_arm64 + # - ios_arm64 + # - maccatalyst_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # # needed by crossaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build the whole product using Mono runtime + # # Only when libraries, mono or installer are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - tvossimulator_x64 + # - linux_arm + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_musl_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # WebAssembly legs + # # + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # # EAT Library tests - only run on linux + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _EAT + # runAOT: false + # shouldRunSmokeOnly: false + # alwaysRun: ${{ variables.isRollingBuild }} + + # # AOT Library tests + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm.Build.Tests + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm Debugger tests + # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm runtime tests + # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Build and Smoke Tests only - Wasm Threading Legs + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_Smoke + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_PerfTracing + # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + # alwaysRun: ${{ variables.isRollingBuild }} + + # # WASI/WASM + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # nameSuffix: '_Smoke' + # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + # shouldContinueOnError: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # + # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # # Build the whole product using Mono and run libraries tests + # # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -561,890 +561,890 @@ extends: eq(variables['monoContainsChange'], true), eq(variables['isRollingBuild'], true)) - # - # MacCatalyst interp - requires AOT Compilation and Interp flags - # Build the whole product using Mono and run libraries tests - # - # - # Disabled pending queue backup investigation - # - #- template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - maccatalyst_x64 - # - ${{ if eq(variables['isRollingBuild'], true) }}: - # - maccatalyst_arm64 - # variables: - # # map dependencies variables to local variables - # - name: librariesContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - # - name: monoContainsChange - # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # condition: >- - # or( - # eq(variables['librariesContainsChange'], true), - # eq(variables['monoContainsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMJIT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMAOT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono debug - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release AOT cross-compilers - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - android - - browser - - tvos - - ios - - maccatalyst - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_arm64 - - osx_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries, mono, or the runtime tests changed - # Currently only these architectures are needed for the runtime tests. - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - - linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release with LLVM AOT - # Only when mono, or the runtime tests changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build libraries using live CoreLib - # These set of libraries are built always no matter what changed - # The reason for that is because Corelib and Installer needs it and - # These are part of the test matrix for Libraries changes. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_arm - - linux_musl_arm - - linux_musl_arm64 - - windows_arm - - windows_arm64 - - windows_x86 - jobParameters: - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - linux_musl_x64 - - linux_x64 - - osx_arm64 - - osx_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - testScope: innerloop - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries debug build that only runs when coreclr is changed - # Only do this on PR builds since we use the Release builds for these test runs in CI - # and those are already built above - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Debug - platforms: - - windows_x86 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - # Libraries release build that only runs when coreclr is changed in PRs - # We need these for checked coreclr + release libraries tests runs. - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Installer Build and Test - # These are always built since they only take like 15 minutes - # we expect these to be done before we finish libraries or coreclr testing. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_musl_arm - - linux_musl_arm64 - - windows_x86 - - windows_arm - - windows_arm64 - - linux_arm - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm64 - - linux_musl_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test builds using live libraries release build - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test executions using live libraries - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - linux_arm - - windows_x86 - - windows_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_x64 - - linux_x64 - - linux_arm64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # Only when Mono is changed - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: minijit - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - - linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # Only when Mono is changed - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # - # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # Only when Mono is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - timeoutInMinutes: 180 - - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Libraries Release Test Execution against a release mono runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - - osx_x64 - - linux_arm64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release mono interpreter runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - #- osx_x64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Debug Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # The next three jobs run checked coreclr + libraries tests. - # The matrix looks like the following, where the right columns specify which configurations - # the libraries tests are built in. - # ________________________________________ - # | Platform | PR | Rolling | - # | ---------------- | ------- | ------- | - # | linux-arm64 | Debug | Release | - # | windows-x86 | Debug | Release | - # | linux-musl-x64 | Debug | Release | - # | OSX-x64 | Debug | Release | - # | linux-musl-arm | Release | Release | - # | linux-musl-arm64 | Release | Release | - # | linux-x64 | Release | Release | - # | windows-x64 | Release | Release | - - # - # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # Only when the PR contains a coreclr change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - windows_x86 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Release Libraries Test Execution against a checked runtime - # Only if CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - linux_musl_arm - - linux_musl_arm64 - - linux_x64 - - windows_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - osx_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Sourcebuild legs - # We have 3 important legs for source-build: - # - Centos.7 (ensures that RH keeps working) - # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # - # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, - # Run Linux-x64 in PR. - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_centos7_x64 - jobParameters: - nameSuffix: centos7SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_banana24_x64 - jobParameters: - nameSuffix: banana24SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) \ No newline at end of file + # # + # # MacCatalyst interp - requires AOT Compilation and Interp flags + # # Build the whole product using Mono and run libraries tests + # # + # # + # # Disabled pending queue backup investigation + # # + # #- template: /eng/pipelines/common/platform-matrix.yml + # # parameters: + # # jobTemplate: /eng/pipelines/common/global-build-job.yml + # # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # # buildConfig: Release + # # runtimeFlavor: mono + # # platforms: + # # - maccatalyst_x64 + # # - ${{ if eq(variables['isRollingBuild'], true) }}: + # # - maccatalyst_arm64 + # # variables: + # # # map dependencies variables to local variables + # # - name: librariesContainsChange + # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + # # - name: monoContainsChange + # # value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + # # jobParameters: + # # testGroup: innerloop + # # nameSuffix: AllSubsets_Mono + # # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # # timeoutInMinutes: 180 + # # condition: >- + # # or( + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # # eq(variables['isRollingBuild'], true)) + # # # extra steps, run tests + # # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # # extraStepsParameters: + # # creator: dotnet-bot + # # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # # condition: >- + # # or( + # # eq(variables['librariesContainsChange'], true), + # # eq(variables['monoContainsChange'], true), + # # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMJIT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMAOT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono debug + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: debug + # platforms: + # - osx_x64 + # - osx_arm64 + # - linux_x64 + # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release AOT cross-compilers + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # - mono_tvos_offsets + # - mono_ios_offsets + # - mono_maccatalyst_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # - tvos + # - ios + # - maccatalyst + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries, mono, or the runtime tests changed + # # Currently only these architectures are needed for the runtime tests. + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # - linux_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release with LLVM AOT + # # Only when mono, or the runtime tests changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # runtimeVariant: llvmaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build libraries using live CoreLib + # # These set of libraries are built always no matter what changed + # # The reason for that is because Corelib and Installer needs it and + # # These are part of the test matrix for Libraries changes. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_arm + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_arm + # - windows_arm64 + # - windows_x86 + # jobParameters: + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - linux_musl_x64 + # - linux_x64 + # - osx_arm64 + # - osx_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # testScope: innerloop + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries debug build that only runs when coreclr is changed + # # Only do this on PR builds since we use the Release builds for these test runs in CI + # # and those are already built above + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Debug + # platforms: + # - windows_x86 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # # + # # Libraries release build that only runs when coreclr is changed in PRs + # # We need these for checked coreclr + release libraries tests runs. + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # framework: net48 + # runTests: true + # testScope: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # jobParameters: + # framework: allConfigurations + # runTests: true + # useHelix: false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Installer Build and Test + # # These are always built since they only take like 15 minutes + # # we expect these to be done before we finish libraries or coreclr testing. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + # - linux_arm + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - linux_musl_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test builds using live libraries release build + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: checked + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test executions using live libraries + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - linux_arm + # - windows_x86 + # - windows_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # # Only when Mono is changed + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # liveRuntimeBuildConfig: release + # runtimeVariant: minijit + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using Mono and run runtime tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # - linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # # Only when Mono is changed + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + # runtimeVariant: monointerpreter + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # + # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # # Only when Mono is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + # #- linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + # runtimeVariant: llvmaot + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + # timeoutInMinutes: 180 + + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Libraries Release Test Execution against a release mono runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # - osx_x64 + # - linux_arm64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # runtimeDisplayName: mono + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release mono interpreter runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # #- osx_x64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # interpreter: true + # runtimeDisplayName: mono_interpreter + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Debug Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # The next three jobs run checked coreclr + libraries tests. + # # The matrix looks like the following, where the right columns specify which configurations + # # the libraries tests are built in. + # # ________________________________________ + # # | Platform | PR | Rolling | + # # | ---------------- | ------- | ------- | + # # | linux-arm64 | Debug | Release | + # # | windows-x86 | Debug | Release | + # # | linux-musl-x64 | Debug | Release | + # # | OSX-x64 | Debug | Release | + # # | linux-musl-arm | Release | Release | + # # | linux-musl-arm64 | Release | Release | + # # | linux-x64 | Release | Release | + # # | windows-x64 | Release | Release | + + # # + # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # # Only when the PR contains a coreclr change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - windows_x86 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Release Libraries Test Execution against a checked runtime + # # Only if CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_x64 + # - windows_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - osx_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Sourcebuild legs + # # We have 3 important legs for source-build: + # # - Centos.7 (ensures that RH keeps working) + # # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # # + # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.7 in rolling CI, + # # Run Linux-x64 in PR. + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_centos7_x64 + # jobParameters: + # nameSuffix: centos7SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_banana24_x64 + # jobParameters: + # nameSuffix: banana24SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) \ No newline at end of file From b199d75485d2252c9f5a86fea8109857140c4c15 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 17:08:47 +0100 Subject: [PATCH 097/166] TESTING ONLY - Add AllSubsets_Mono_RuntimeTests to runtime.yml --- eng/pipelines/runtime.yml | 43 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2d103b3a7aef3..2edf5232ca101 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -531,7 +531,7 @@ extends: runtimeFlavor: mono platforms: - ios_arm64 - - tvos_arm64 + # - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -1447,4 +1447,43 @@ extends: # extraStepsParameters: # name: SourceBuildPackages # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) \ No newline at end of file + # condition: eq(variables['isRollingBuild'], true) + + # + # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - iOS_arm64 + # - tvOS_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+clr.hosts -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + timeoutInMinutes: 240 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + testSubsetArgs: -tree:./src/tests/JIT From 61b70fb9314633abd211c8555ab093fdacb914e1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 17:26:23 +0100 Subject: [PATCH 098/166] TESTING ONLY - Disable staging and dev-innerloop jobs --- eng/pipelines/global-build.yml | 260 +++++++++++++++--------------- eng/pipelines/runtime-staging.yml | 76 ++++----- eng/pipelines/runtime.yml | 16 +- 3 files changed, 176 insertions(+), 176 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index da491d4cd6760..71f0dcc5e4f95 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -41,139 +41,139 @@ extends: - template: /eng/pipelines/common/evaluate-default-paths.yml # - # Build with Release config and Debug runtimeConfiguration - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - - osx_x64 - - osx_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Debug - buildArgs: -c release -runtimeConfiguration debug - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # Build with Release config and Debug runtimeConfiguration + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x86 + # - osx_x64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Runtime_Debug + # buildArgs: -c release -runtimeConfiguration debug + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with Release config and runtimeConfiguration with MSBuild generator - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - jobParameters: - testGroup: innerloop - nameSuffix: MSBuild_CMake - buildArgs: -c Release -msbuild - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with Release config and runtimeConfiguration with MSBuild generator + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x86 + # jobParameters: + # testGroup: innerloop + # nameSuffix: MSBuild_CMake + # buildArgs: -c Release -msbuild + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with Debug config and Release runtimeConfiguration - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Release - buildArgs: -c debug -runtimeConfiguration release - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with Debug config and Release runtimeConfiguration + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Runtime_Release + # buildArgs: -c debug -runtimeConfiguration release + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is - # specified. Catches cases where we depend on Configuration also being specified - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64 - jobParameters: - testGroup: innerloop - nameSuffix: RuntimeFlavor_Mono - buildArgs: /p:RuntimeFlavor=Mono - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is + # # specified. Catches cases where we depend on Configuration also being specified + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: RuntimeFlavor_Mono + # buildArgs: /p:RuntimeFlavor=Mono + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build Mono + Libraries. This exercises the code path where we build libraries without - # first building CoreCLR - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - windows_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Mono_Libraries - buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build Mono + Libraries. This exercises the code path where we build libraries without + # # first building CoreCLR + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Mono_Libraries + # buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all - # configurations on a non Windows operating system. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64 - jobParameters: - nameSuffix: Libraries_AllConfigurations - buildArgs: -subset libs -allconfigurations - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all + # # configurations on a non Windows operating system. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64 + # jobParameters: + # nameSuffix: Libraries_AllConfigurations + # buildArgs: -subset libs -allconfigurations + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # SourceBuild Build - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - SourceBuild_linux_x64 - jobParameters: - nameSuffix: PortableSourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) + # # + # # SourceBuild Build + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # platforms: + # - SourceBuild_linux_x64 + # jobParameters: + # nameSuffix: PortableSourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 322faae117b71..abbe187194fc3 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -65,41 +65,41 @@ extends: # # Build the whole product using Mono and run runtime tests with the JIT. # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - iossimulator_x64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - ${{ if eq(variables['isRollingBuild'], true) }}: - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - iossimulator_x64 + # variables: + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + # - name: _HelixSource + # value: pr/dotnet/runtime/$(Build.SourceBranch) + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + # - name: _HelixSource + # value: ci/dotnet/runtime/$(Build.SourceBranch) + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs -c $(_BuildConfig) + # timeoutInMinutes: 240 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # ${{ if eq(variables['isRollingBuild'], true) }}: + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2edf5232ca101..3d3bdea108d38 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -58,8 +58,8 @@ extends: # # Evaluate paths # - - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - - template: /eng/pipelines/common/evaluate-default-paths.yml + # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: + # - template: /eng/pipelines/common/evaluate-default-paths.yml # # # Build CoreCLR checked @@ -543,12 +543,12 @@ extends: nameSuffix: AllSubsets_Mono buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml extraStepsParameters: From 97dfdb0e90fd7545d67364a401241161983eed67 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 17:31:06 +0100 Subject: [PATCH 099/166] TESTING ONLY - Disable staging and dev-innerloop jobs --- eng/pipelines/global-build.yml | 4 +- eng/pipelines/runtime-linker-tests.yml | 142 ++++++++++++------------- eng/pipelines/runtime-staging.yml | 4 +- eng/pipelines/runtime.yml | 4 +- 4 files changed, 77 insertions(+), 77 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 71f0dcc5e4f95..9d271c9b7f65f 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -37,8 +37,8 @@ extends: # # Evaluate paths # - - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - - template: /eng/pipelines/common/evaluate-default-paths.yml + # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: + # - template: /eng/pipelines/common/evaluate-default-paths.yml # # # Build with Release config and Debug runtimeConfiguration diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index dc586a230fd93..d3709a7cb6e7f 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -55,77 +55,77 @@ extends: - stage: Build jobs: - # - # Evaluate paths - # - - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - - template: /eng/pipelines/common/evaluate-default-paths.yml + # # + # # Evaluate paths + # # + # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: + # - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build and Test ILLink in Release config vertical for Windows, Linux and OSX - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - jobParameters: - testGroup: innerloop - testResultsFormat: 'vstest' - timeoutInMinutes: 120 - nameSuffix: ILLink_Runtime_Testing - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(variables['isRollingBuild'], true)) - buildArgs: -s tools.illinktests -test -c $(_BuildConfig) + # # + # # Build and Test ILLink in Release config vertical for Windows, Linux and OSX + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # testResultsFormat: 'vstest' + # timeoutInMinutes: 120 + # nameSuffix: ILLink_Runtime_Testing + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # buildArgs: -s tools.illinktests -test -c $(_BuildConfig) - # - # Build Release config vertical for Windows, Linux, and OSX - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - buildArgs: -s clr+libs -c $(_BuildConfig) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # # + # # Build Release config vertical for Windows, Linux, and OSX + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: Runtime_Release + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # buildArgs: -s clr+libs -c $(_BuildConfig) + # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - # - # Build Release config vertical for Browser-wasm - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - browser_wasm - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false - condition: - or( - eq(variables['isRollingBuild'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - extraStepsParameters: - extraTestArgs: '/p:WasmBuildNative=false' + # # + # # Build Release config vertical for Browser-wasm + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - browser_wasm + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: Runtime_Release + # buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false + # condition: + # or( + # eq(variables['isRollingBuild'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) + # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # extraStepsParameters: + # extraTestArgs: '/p:WasmBuildNative=false' diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index abbe187194fc3..3f97d7ef460d0 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -59,8 +59,8 @@ extends: # # Evaluate paths # - - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - - template: /eng/pipelines/common/evaluate-default-paths.yml + # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: + # - template: /eng/pipelines/common/evaluate-default-paths.yml # # Build the whole product using Mono and run runtime tests with the JIT. diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 3d3bdea108d38..6b38d747952ff 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -58,8 +58,8 @@ extends: # # Evaluate paths # - # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - # - template: /eng/pipelines/common/evaluate-default-paths.yml + - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: + - template: /eng/pipelines/common/evaluate-default-paths.yml # # # Build CoreCLR checked From 29c6245449a22d2b5b0c1867a295bcd46389bf29 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 19:53:35 +0100 Subject: [PATCH 100/166] Update extra step for iOS job --- eng/pipelines/runtime.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 6b38d747952ff..aa19979bdc471 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1481,9 +1481,12 @@ extends: testGroup: innerloop testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+clr.hosts -c $(_BuildConfig) /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + buildArgs: -s mono+libs -c $(_BuildConfig) #/p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: - testSubsetArgs: -tree:./src/tests/JIT + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From a40e26dcd4297a10d5f9c183646245d832417e6f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 20:07:40 +0100 Subject: [PATCH 101/166] Update extra step for iOS job --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index aa19979bdc471..021dc2de110e2 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1481,7 +1481,7 @@ extends: testGroup: innerloop testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) #/p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml From a67893f85da19f0255918c5ca6aba0919454cc56 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 16 Mar 2023 20:14:39 +0100 Subject: [PATCH 102/166] Update extra step for iOS job --- eng/pipelines/runtime.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 021dc2de110e2..a96f7ca1915dc 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1488,5 +1488,4 @@ extends: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + From 55217004435300b2a455fa6f66e03e13e8a584e0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 17 Mar 2023 14:36:36 +0100 Subject: [PATCH 103/166] Include baseservices on iOS --- src/tests/build.proj | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index cac277d3b65c4..b83a4d911de97 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -59,12 +59,19 @@ - + + + + + + + + - + From d26699c70774d54f65ece0eb0a011cf4c3b322d3 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 17 Mar 2023 17:39:41 +0100 Subject: [PATCH 107/166] Exclude XUnitLogCheckerDirectory from HelixCorrelationPayload --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 1dcc9f2623505..e49525611017d 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -725,7 +725,7 @@ - + From 76b4f791e21bd1b2f7033d4e0606913c07d847ab Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 17 Mar 2023 17:50:15 +0100 Subject: [PATCH 108/166] Exclude XUnitLogCheckerDirectory from HelixCorrelationPayload --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 8493f35fc09dd..3b4438b2e6a98 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -725,7 +725,7 @@ - + sos https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/flat2/dotnet-sos/$(DotnetSosVersion)/dotnet-sos.$(DotnetSosVersion).nupkg From ac87d84fedb3756a4c023813e0e3648d41fe9c4e Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 17 Mar 2023 18:56:14 +0100 Subject: [PATCH 109/166] Use TargetsiOS property --- src/tests/Common/helixpublishwitharcade.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 3b4438b2e6a98..e1a71c9f8a2a3 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -109,7 +109,7 @@ SuperPmiCollect=$(_SuperPmiCollect) - <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargetOS)' == 'iOS'"> + <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargetsiOS)' == 'true'"> $(_PropertiesToPass); IncludeDotNetCli=$(IncludeDotNetCli); DotNetCliRuntime=$(DotNetCliRuntime); @@ -858,7 +858,7 @@ ios-simulator-64 - ios-device + ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) @@ -868,7 +868,7 @@ --set-env=TestExclusionListPath=TestExclusionList.txt ios-simulator-64 ios-simulator-64 - ios-device + ios-device $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) From f12c6a31833703edf46dee2b7f78384b06a898d0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 20 Mar 2023 12:55:21 +0100 Subject: [PATCH 110/166] Add logs in helixpublishwitharcade.proj --- src/tests/Common/helixpublishwitharcade.proj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index e1a71c9f8a2a3..ee061c21e08f3 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -120,6 +120,7 @@ + @@ -283,6 +284,7 @@ + @@ -342,6 +344,8 @@ + + <_Scenario Include="$(_Scenarios.Split(','))" /> <_ProjectsToBuild Include="$(MSBuildProjectFile)"> @@ -503,6 +507,9 @@ Condition="'$(TargetsAppleMobile)' == 'true'" Outputs="%(_MergedWrapperMarker.FileName)" DependsOnTargets="DiscoverMergedTestWrappers;GetTestExclusionList"> + + + <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) <_MergedWrapperName>%(_MergedWrapperMarker.FileName) From c1c6988aa2d5cb08f92b525c81ca771db0fc58f0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 20 Mar 2023 14:34:05 +0100 Subject: [PATCH 111/166] Add logs in helixpublishwitharcade.proj --- src/tests/Common/helixpublishwitharcade.proj | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index ee061c21e08f3..9460962e770b9 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -281,6 +281,7 @@ + @@ -309,7 +310,7 @@ - + <_PayloadGroups Include="$(PayloadGroups)" /> <_ProjectsToBuild Include="testenvironment.proj" Condition="!$(IsMergedTestWrapper)"> @@ -340,6 +341,8 @@ + + @@ -353,6 +356,8 @@ + + @@ -508,13 +513,16 @@ Outputs="%(_MergedWrapperMarker.FileName)" DependsOnTargets="DiscoverMergedTestWrappers;GetTestExclusionList"> - + <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) <_MergedWrapperName>%(_MergedWrapperMarker.FileName) + + + iphone iphonesimulator @@ -538,6 +546,8 @@ <_MergedPayloadFiles Remove="@(_TestExclusionListPlaceholder)" /> + + + @@ -563,6 +574,7 @@ + From 5b65baf7986560571ff24cba1688e43005504a54 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 20 Mar 2023 16:06:35 +0100 Subject: [PATCH 112/166] Include baseservices/varargs tests --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index b83a4d911de97..dc1dee9d5f48f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -67,7 +67,7 @@ - + From 6b5a93d37ad7ae50948113e2d7be652c01739422 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 20 Mar 2023 20:10:22 +0100 Subject: [PATCH 113/166] Include tracing/eventpipe tests on iOS --- src/tests/build.proj | 7 +------ src/tests/issues.targets | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index dc1dee9d5f48f..086ef4d7b1230 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -59,17 +59,12 @@ - + - - - - - diff --git a/src/tests/issues.targets b/src/tests/issues.targets index ac76577012256..282640fd079e8 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4350,12 +4350,6 @@ - - needs triage - - - needs triage - Build time issue @@ -4386,6 +4380,24 @@ Build time issue + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + From a25269f3d50b561e6ce6549e3c0690925e17be1c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 20 Mar 2023 21:06:39 +0100 Subject: [PATCH 114/166] Include tracing tests on iOS --- src/tests/issues.targets | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 282640fd079e8..d681853dbd8ac 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4383,21 +4383,6 @@ Build time issue - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - From c01a0d2cada7ab9b3e18d953ab28d8eaa93b3dc2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 21 Mar 2023 08:38:32 +0100 Subject: [PATCH 115/166] Include baseservices tests on iOS --- src/tests/issues.targets | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index d681853dbd8ac..66754684e328b 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4380,9 +4380,6 @@ Build time issue - - Build time issue - From 5ba4ef51b25378a675c8c20e0a867a9100eb66f9 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 21 Mar 2023 09:55:44 +0100 Subject: [PATCH 116/166] Include JIT tests on iOS --- src/tests/issues.targets | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 66754684e328b..459c0f5231363 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4350,9 +4350,6 @@ - - Build time issue - Build time issue From 89cc3c3185a04d0717fec94d104e22dce02823b6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 21 Mar 2023 10:43:26 +0100 Subject: [PATCH 117/166] Remove /p:MonoAot=true flag --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index d92597f57991a..651ecdeed5b4f 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -33,7 +33,7 @@ steps: - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) ci ${{ parameters.archType }} $(buildConfigUpper) $(priorityArg) $(runtimeFlavorArgs) ${{ parameters.testBuildArgs }} $(runtimeVariantArg) /p:LibrariesConfiguration=${{ coalesce(parameters.liveLibrariesBuildConfig, parameters.buildConfig) }} displayName: Build Tests - ${{ if ne(parameters.osGroup, 'windows') }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) ci os ${{ parameters.osGroup }} ${{ parameters.archType }} $(buildConfigUpper) $(priorityArg) $(runtimeFlavorArgs) ${{ parameters.testBuildArgs }} $(runtimeVariantArg) /p:LibrariesConfiguration=${{ coalesce(parameters.liveLibrariesBuildConfig, parameters.buildConfig) }} /p:MonoAot=true + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) ci os ${{ parameters.osGroup }} ${{ parameters.archType }} $(buildConfigUpper) $(priorityArg) $(runtimeFlavorArgs) ${{ parameters.testBuildArgs }} $(runtimeVariantArg) /p:LibrariesConfiguration=${{ coalesce(parameters.liveLibrariesBuildConfig, parameters.buildConfig) }} displayName: Build Tests From bdf958d394664af4b6cb0ab4ab8bdcfb08870428 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 21 Mar 2023 13:56:58 +0100 Subject: [PATCH 118/166] Exclude more tests --- src/tests/issues.targets | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 459c0f5231363..282640fd079e8 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4350,6 +4350,9 @@ + + Build time issue + Build time issue @@ -4377,6 +4380,24 @@ Build time issue + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + + + Build time issue + From 65f89cdb0c3c4a279ac5d85cc5dd89ed6e53c4d5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 22 Mar 2023 21:10:31 +0100 Subject: [PATCH 119/166] Add baseservices to test the flow --- src/tests/build.proj | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 086ef4d7b1230..27752c87081d4 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -276,7 +276,7 @@ $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','_')) $([System.String]::Copy('$(CategoryWithSlash)').Replace('/', '.')).XUnitWrapper.dll $(CMDDIR_GrandParent)/$(CategoryWithSlash)/$(XUnitWrapperFileName) - $(IntermediateOutputPath)\iOSApps\$(Category) + $(__TestIntermediatesDir)\iOSApps\$(Category) $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app diagnostics_tracing;marshal-ilgen 127.0.0.1:9000,nosuspend,listen @@ -478,6 +478,9 @@ + + $(XunitTestBinBase)baseservices + _CMDDIR=%(TestDirectories.Identity) From fc5b7d1e2275ba450b84ce61c494b55cc713af5b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 23 Mar 2023 09:36:59 +0100 Subject: [PATCH 120/166] Add tracing/eventpipe to test the flow --- src/tests/build.proj | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 27752c87081d4..72d9330b73c27 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -65,6 +65,7 @@ ItemName="TestDirectories"/> + $(XunitTestBinBase)tracing/eventpipe @@ -478,9 +479,6 @@ - - $(XunitTestBinBase)baseservices - _CMDDIR=%(TestDirectories.Identity) From 0231720b9bfb60a191989b564f85c3e3eea4f6ac Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 23 Mar 2023 10:53:01 +0100 Subject: [PATCH 121/166] Add tracing/eventpipe to test the flow --- src/tests/build.proj | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 72d9330b73c27..2b2ef0ede1486 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -64,8 +64,9 @@ TaskParameter="Filtered" ItemName="TestDirectories"/> - - $(XunitTestBinBase)tracing/eventpipe + + $(XunitTestBinBase)tracing/eventpipe + From 18820489ce4a05ac825bae80b4c562bbb3a0e817 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 25 Mar 2023 14:38:19 +0100 Subject: [PATCH 122/166] Add new TestGroupToBuild for iOS --- src/tests/Common/dirs.proj | 4 ++++ src/tests/build.proj | 12 ++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index 2233c0702c81f..17b9bbaec03ca 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -71,6 +71,10 @@ <_GroupStartsWith Include="$(TestRoot)JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b35351\b35351.ilproj"> 3 + + <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> + 9 + diff --git a/src/tests/build.proj b/src/tests/build.proj index 2b2ef0ede1486..a0ed0c59accda 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -64,11 +64,6 @@ TaskParameter="Filtered" ItemName="TestDirectories"/> - - $(XunitTestBinBase)tracing/eventpipe - - - - - + + + Date: Mon, 27 Mar 2023 11:02:46 +0200 Subject: [PATCH 123/166] Enable baseservices runtime tests --- src/tests/Common/dirs.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index 17b9bbaec03ca..ca155200c5d8b 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -72,7 +72,7 @@ 3 - <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> + <_GroupStartsWith Include="$(TestRoot)baseservices\callconvs\CallFunctionPointers.ilproj"> 9 From f76468fb606c92dc7c0b828384cfb3c4827729cb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 28 Mar 2023 12:47:37 +0200 Subject: [PATCH 124/166] Try new testing group --- src/tests/Common/dirs.proj | 8 ++++++-- src/tests/build.proj | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index ca155200c5d8b..90fc0cb621b71 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -72,8 +72,8 @@ 3 - <_GroupStartsWith Include="$(TestRoot)baseservices\callconvs\CallFunctionPointers.ilproj"> - 9 + <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> + 11 @@ -118,6 +118,10 @@ <_GroupStartsWith Include="$(TestRoot)Loader\classloader\generics\VSD\Class2_ImplicitOverrideVirtualNewslot.csproj"> 10 + + <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> + 11 + diff --git a/src/tests/build.proj b/src/tests/build.proj index a0ed0c59accda..16de1cea5d713 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -566,7 +566,7 @@ - + From 1645d9376c8c194c136ce174afe5d68c2b7d051b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 28 Mar 2023 14:06:58 +0200 Subject: [PATCH 125/166] Remove duplicate assemblies --- src/tests/build.proj | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index 16de1cea5d713..3c5a8114f0a4f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -417,6 +417,13 @@ + + + + + + + + From 8bcc03314e142ac66e90c208419d0bc741996ac4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 30 Mar 2023 15:08:54 +0200 Subject: [PATCH 126/166] Remove duplicates before native linking --- src/tests/Common/dirs.proj | 8 ++------ src/tests/build.proj | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index 90fc0cb621b71..5bb1d83df072a 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -72,8 +72,8 @@ 3 - <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> - 11 + <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\"> + 9 @@ -118,10 +118,6 @@ <_GroupStartsWith Include="$(TestRoot)Loader\classloader\generics\VSD\Class2_ImplicitOverrideVirtualNewslot.csproj"> 10 - - <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\bigevent\bigevent.csproj"> - 11 - diff --git a/src/tests/build.proj b/src/tests/build.proj index 3c5a8114f0a4f..ee6218f9f8078 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -58,12 +58,15 @@ - - + + + + + - + + Date: Thu, 30 Mar 2023 17:14:46 +0200 Subject: [PATCH 127/166] Disable dedup for testing purposes --- src/tests/build.proj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index ee6218f9f8078..94c3b4d122163 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -401,7 +401,7 @@ - + @@ -432,7 +432,6 @@ OutputDir="$(_MobileIntermediateOutputPath)" Mode="$(_AOTMode)" OutputType="AsmOnly" - DedupAssembly="$(_DedupAssembly)" Assemblies="@(_AotInputAssembliesDedup)" AotModulesTablePath="$(BundleDir)\modules.m" AotModulesTableLanguage="ObjC" From eab887746f70636c10a51fc5a99e13a9adf8a768 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 11:43:04 +0200 Subject: [PATCH 128/166] Remove testdir- from env variables --- src/tests/Common/CLRTest.Execute.Bash.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 13daff3546265..dc100ff5c9e14 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -436,8 +436,8 @@ fi $__Command $HARNESS_RUNNER apple just-run %5c --app="net.dot.$__Category" %5c --output-directory="$__OutputDir" %5c - --set-env="MONO_APPLE_APP_ENTRY_POINT_LIB_NAME=testdir-$(MsBuildProjectName)/$(MsBuildProjectName).dll" %5c - --set-env="MONO_APPLE_APP_ASSEMBLY_LOAD_PREFIX=testdir-$(MsBuildProjectName)" %5c + --set-env="MONO_APPLE_APP_ENTRY_POINT_LIB_NAME=$(MsBuildProjectName)/$(MsBuildProjectName).dll" %5c + --set-env="MONO_APPLE_APP_ASSEMBLY_LOAD_PREFIX=$(MsBuildProjectName)" %5c --expected-exit-code=100 %5c --targets ios$(IosTestTargetSuffix) %5c -v From 90e43512a0e1f955aaca10753e43aad258031f64 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 17:47:02 +0200 Subject: [PATCH 129/166] Include tracing/eventpipe tests --- src/tests/Common/CLRTest.Execute.Bash.targets | 4 +- src/tests/issues.targets | 40 +------------------ 2 files changed, 4 insertions(+), 40 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index dc100ff5c9e14..13daff3546265 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -436,8 +436,8 @@ fi $__Command $HARNESS_RUNNER apple just-run %5c --app="net.dot.$__Category" %5c --output-directory="$__OutputDir" %5c - --set-env="MONO_APPLE_APP_ENTRY_POINT_LIB_NAME=$(MsBuildProjectName)/$(MsBuildProjectName).dll" %5c - --set-env="MONO_APPLE_APP_ASSEMBLY_LOAD_PREFIX=$(MsBuildProjectName)" %5c + --set-env="MONO_APPLE_APP_ENTRY_POINT_LIB_NAME=testdir-$(MsBuildProjectName)/$(MsBuildProjectName).dll" %5c + --set-env="MONO_APPLE_APP_ASSEMBLY_LOAD_PREFIX=testdir-$(MsBuildProjectName)" %5c --expected-exit-code=100 %5c --targets ios$(IosTestTargetSuffix) %5c -v diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 282640fd079e8..0e24a633d6a72 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3204,46 +3204,10 @@ https://github.com/dotnet/runtime/issues/75767 - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - + needs triage - + needs triage From 679b4728bcaa366e1c424145d6472b9819ba068f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 19:56:31 +0200 Subject: [PATCH 130/166] Force interpreter --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 94c3b4d122163..cda1e6185c1e7 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -281,7 +281,7 @@ diagnostics_tracing;marshal-ilgen 127.0.0.1:9000,nosuspend,listen True - True + True From 5bb1129e1221e87c6683a080e216249aa9137b52 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 20:46:20 +0200 Subject: [PATCH 131/166] Exclude failing tests --- src/tests/issues.targets | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 0e24a633d6a72..30ceb44333737 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3210,6 +3210,24 @@ needs triage + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + needs triage From f3c35113da601cf98cf6ce45bffc6f3560b445a4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 20:47:37 +0200 Subject: [PATCH 132/166] Exclude failing tests --- src/tests/issues.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 30ceb44333737..5a868af91cf68 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3213,6 +3213,9 @@ needs triage + + needs triage + needs triage From 047578ee72e93bf95ab9eef3446eb86be11d59f6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 31 Mar 2023 21:51:10 +0200 Subject: [PATCH 133/166] Exclude failing tests --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 5a868af91cf68..f57befc7ae29d 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3228,7 +3228,7 @@ needs triage - + needs triage From 42e02df7637ecf51cdc47cad014e6513bafa2e8f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 1 Apr 2023 12:20:11 +0200 Subject: [PATCH 134/166] Remove hardcoded test directory --- src/tests/build.proj | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index cda1e6185c1e7..4e08645424d7e 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -58,15 +58,11 @@ - - - - - + - + <_PayloadGroups Include="$(PayloadGroups)" /> <_ProjectsToBuild Include="testenvironment.proj" Condition="!$(IsMergedTestWrapper)"> @@ -341,8 +338,6 @@ - - @@ -356,8 +351,6 @@ - - @@ -513,16 +506,11 @@ Outputs="%(_MergedWrapperMarker.FileName)" DependsOnTargets="DiscoverMergedTestWrappers;GetTestExclusionList"> - - <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory) <_MergedWrapperName>%(_MergedWrapperMarker.FileName) - - - iphone iphonesimulator @@ -545,8 +533,6 @@ <_TestExclusionListPlaceholder Include="@(_MergedPayloadFiles)" Condition="$([System.String]::new('%(FileName)').EndsWith('TestExclusionList'))" /> <_MergedPayloadFiles Remove="@(_TestExclusionListPlaceholder)" /> - - @@ -558,7 +544,6 @@ - @@ -574,7 +559,6 @@ - diff --git a/src/tests/build.proj b/src/tests/build.proj index 4e08645424d7e..df0c5b8dcfac9 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -277,11 +277,8 @@ diagnostics_tracing;marshal-ilgen 127.0.0.1:9000,nosuspend,listen True - True - - $(Category) iossimulator @@ -289,6 +286,11 @@ $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimePackOSSuffix)-$(TargetArchitecture)/$(Configuration)/runtimes/$(RuntimePackOSSuffix)-$(TargetArchitecture) $(MicrosoftNetCoreAppRuntimePackDir)/native + + + + True + @@ -366,8 +368,6 @@ <_MobileIntermediateOutputPath>$([MSBuild]::NormalizeDirectory($(IntermediateOutputPath), 'mobile')) - - <_AppleAssembliesInternal Include="$(BuildDir)/**/*.dll" /> @@ -397,25 +397,6 @@ - - - - - - - - + + Date: Mon, 3 Apr 2023 13:29:24 +0200 Subject: [PATCH 136/166] Fix formatting --- src/tests/Common/helixpublishwitharcade.proj | 5 +---- src/tests/build.proj | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index cb93ed6140a64..c6b3aa5cffcbb 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -342,15 +342,12 @@ - - <_Scenario Include="$(_Scenarios.Split(','))" /> <_ProjectsToBuild Include="$(MSBuildProjectFile)"> Scenario=%(_Scenario.Identity);PayloadGroups=@(_MergedPayloadGroups);IsMergedTestWrapper=true - @@ -533,7 +530,7 @@ <_TestExclusionListPlaceholder Include="@(_MergedPayloadFiles)" Condition="$([System.String]::new('%(FileName)').EndsWith('TestExclusionList'))" /> <_MergedPayloadFiles Remove="@(_TestExclusionListPlaceholder)" /> - + + + - - + + - + $(GroupBuildCmd) "/p:__SkipRestorePackages=1" $(GroupBuildCmd) /nodeReuse:false $(GroupBuildCmd) /maxcpucount - $(GroupBuildCmd) "/p:DevTeamProvisioning=-" + $(GroupBuildCmd) "/p:DevTeamProvisioning=-" $(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" @@ -675,7 +677,7 @@ + Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and '$(RunWithiOS)' == 'true'" /> Date: Tue, 4 Apr 2023 09:37:45 +0200 Subject: [PATCH 141/166] Add AppleTestTarget to helixpublishwitharcade.proj --- src/tests/Common/helixpublishwitharcade.proj | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 6f18f55cf2461..df470704e5376 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -833,6 +833,14 @@ + + ios-simulator-64 + tvos-simulator + ios-device + tvos-device + maccatalyst + + %(PayloadDirectory) @@ -853,12 +861,10 @@ net.dot.%(PayloadGroup) net.dot.MonoRunner $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) - ios-simulator-64 - ios-simulator-64 - ios-device + $(AppleTestTarget) $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) @@ -866,9 +872,7 @@ --set-env=TestExclusionListPath=TestExclusionList.txt - ios-simulator-64 - ios-simulator-64 - ios-device + $(AppleTestTarget) $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) From 4b14618258c10d3ffaf15733193f69770df08f14 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 4 Apr 2023 12:05:27 +0200 Subject: [PATCH 142/166] Fix typo in signing script --- src/tests/Common/helixpublishwitharcade.proj | 6 +++--- src/tests/build.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index df470704e5376..d9746217ed5e7 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -829,7 +829,7 @@ + for APP_FILE in `find . -name *.app`; do cp embedded.mobileprovision $APP_FILE; sign $APP_FILE; done; ]]> @@ -866,8 +866,8 @@ $(AppleTestTarget) $([System.TimeSpan]::FromMinutes($(TimeoutPerTestCollectionInMinutes))) - $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) - $(SigningCommand); dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) + $(SigningCommand) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) + $(SigningCommand) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) diff --git a/src/tests/build.sh b/src/tests/build.sh index 685c9cb72864b..5d742126a08d0 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -60,7 +60,7 @@ build_Tests() export MSBUILDDEBUGPATH if [[ "$__SkipNative" != 1 && "$__BuildTestWrappersOnly" != 1 && "$__GenerateLayoutOnly" != 1 && "$__CopyNativeTestBinaries" != 1 && \ - "$__TargetOS" != "browser" && "$__TargetOS" != "wasi" && "$__TargetOS" != "android" && "$__TargetOS" != "ios" && "$__TargetOS" != "iossimulator" ]]; then + "$__TargetOS" != "browser" && "$__TargetOS" != "wasi" && "$__TargetOS" != "android" && "$__TargetOS" != "ios" && "$__TargetOS" != "iossimulator" && "$__TargetOS" != "tvos" && "$__TargetOS" != "tvossimulator" ]]; then build_native "$__TargetOS" "$__TargetArch" "$__TestDir" "$__NativeTestIntermediatesDir" "install" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then From c318a7a68c1cda6a6c2d1bc411a86af9191f8369 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 4 Apr 2023 13:23:15 +0200 Subject: [PATCH 143/166] Exclude failing tests on iossimulator --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index f57befc7ae29d..5f4e3ab6ba6ef 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3185,7 +3185,7 @@ - + https://github.com/dotnet/runtime/issues/48914 From 72aa2bab260f10ddb86e3675bea7893a717388eb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 4 Apr 2023 16:07:21 +0200 Subject: [PATCH 144/166] Update simulator test queues --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 10 +++++++--- .../runtime-extra-platforms-ioslike.yml | 4 ++-- .../runtime-extra-platforms-ioslikesimulator.yml | 6 +++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 9ae14933a5aeb..7f9f4ee9a598d 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -32,9 +32,13 @@ jobs: dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }} helixQueues: - # iOS/tvOS simulator x64/x86 - - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64') }}: - - OSX.1015.Amd64.Open + # iOS Simulator/Mac Catalyst arm64 + - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: + - OSX.1200.Arm64.Open + + # iOS/tvOS Simulator x64 & MacCatalyst x64 + - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: + - OSX.1200.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 57786b3682276..5e2e23db97546 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -56,8 +56,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - iOS_arm64 - - tvOS_arm64 + - ios_arm64 + - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index ab5d4d267b1b6..1a82b89e9cf40 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -58,10 +58,10 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - iOSSimulator_x64 - - tvOSSimulator_x64 + - iossimulator_x64 + - tvossimulator_x64 - ${{ if eq(variables['isRollingBuild'], true) }}: - - iOSSimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource From 401517cd8d513225f71010aef0c253015dc2985d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 5 Apr 2023 11:14:05 +0200 Subject: [PATCH 145/166] add missing RIDs for tvOS/tvOSSimulator --- src/tests/Common/helixpublishwitharcade.proj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index d9746217ed5e7..4235ee4516398 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -162,6 +162,8 @@ android-$(TargetArchitecture) iossimulator-$(TargetArchitecture) ios-$(TargetArchitecture) + tvossimulator-$(TargetArchitecture) + tvos-$(TargetArchitecture) @@ -589,7 +591,7 @@ $([System.TimeSpan]::FromMinutes($(TimeoutPerTestInMinutes)).TotalMilliseconds) true <_XUnitParallelMode>collections - <_XUnitParallelMode Condition=" '$(TargetsAndroid)' == 'true' or '$(TargetsiOSSimulator)' == 'true' or '$(TargetsiOS)' == 'true'">none + <_XUnitParallelMode Condition=" '$(TargetsAndroid)' == 'true' or '$(TargetsiOSSimulator)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOSSimulator)' == 'true' or '$(TargetstvOS)' == 'true'">none <_XUnitParallelMode Condition=" '$(LongRunningGCTests)' == 'true' ">none <_XUnitParallelMode Condition=" '$(GcSimulatorTests)' == 'true' ">none -parallel $(_XUnitParallelMode) -nocolor -noshadow -xml testResults.xml From c717bf6196b9063c8a0a28a3cd3590781f22f775 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 5 Apr 2023 13:59:28 +0200 Subject: [PATCH 146/166] Add missing RIDs --- src/tests/Common/helixpublishwitharcade.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 4235ee4516398..036d6188ca31a 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -109,7 +109,7 @@ SuperPmiCollect=$(_SuperPmiCollect) - <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargetsiOS)' == 'true'"> + <_PropertiesToPass Condition="'$(TargetOS)' == 'browser' Or '$(TargetsAndroid)' == 'true' Or '$(TargetsiOS)' == 'true' Or '$(TargetsiOSSimulator)' == 'true' Or '$(TargetstvOS)' == 'true' Or '$(TargetstvOSSimulator)' == 'true'"> $(_PropertiesToPass); IncludeDotNetCli=$(IncludeDotNetCli); DotNetCliRuntime=$(DotNetCliRuntime); @@ -727,7 +727,7 @@ - + sos https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/flat2/dotnet-sos/$(DotnetSosVersion)/dotnet-sos.$(DotnetSosVersion).nupkg From d3c2e15905bc8b261f3f0f7e6ca4ec39ba38ff0d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 5 Apr 2023 18:11:12 +0200 Subject: [PATCH 147/166] Add tvOS identifiers to CLRTest.Execute.Bash.targets --- src/tests/Common/CLRTest.Execute.Bash.targets | 12 +++++++----- src/tests/issues.targets | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 13daff3546265..fbb7c01f23c1f 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,9 +60,11 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') - -simulator-64 - -simulator - -device + ios-simulator-64 + ios-simulator + ios-device + tvos-simulator + tvos-device - + - + https://github.com/dotnet/runtime/issues/48914 From 898d9e4591d419df741cd8f807b6881043a0668c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 6 Apr 2023 09:46:59 +0200 Subject: [PATCH 148/166] Add tvos targets to MobileAppHandler.cs --- .../Coreclr.TestWrapper/MobileAppHandler.cs | 30 +++++++++++-------- src/tests/xunit-wrappers.targets | 8 ++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs index e36dd4ac25d6f..656510879cc07 100644 --- a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs +++ b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs @@ -22,17 +22,17 @@ public class MobileAppHandler // 91 - ADB_FAILURE private static readonly int[] _knownExitCodes = new int[] { 78, 81, 82, 83, 84, 86, 88, 89, 90, 91 }; - public int InstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, bool device = false) + public int InstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, string targetOS) { - return HandleMobileApp("install", platform, category, testBinaryBase, reportBase, device); + return HandleMobileApp("install", platform, category, testBinaryBase, reportBase, targetOS); } - public int UninstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, bool device = false) + public int UninstallMobileApp(string platform, string category, string testBinaryBase, string reportBase, string targetOS) { - return HandleMobileApp("uninstall", platform, category, testBinaryBase, reportBase, device); + return HandleMobileApp("uninstall", platform, category, testBinaryBase, reportBase, targetOS); } - private static int HandleMobileApp(string action, string platform, string category, string testBinaryBase, string reportBase, bool device=false) + private static int HandleMobileApp(string action, string platform, string category, string testBinaryBase, string reportBase, string targetOS) { int exitCode = -100; @@ -85,13 +85,19 @@ private static int HandleMobileApp(string action, string platform, string catego string targetString; - if (device) - { - targetString = "ios-device"; - } - else - { - targetString = "ios-simulator-64"; + switch (targetOS) { + case "ios": + targetString = "ios-device"; + break; + case "iossimulator": + targetString = "ios-simulator-64"; + break; + case "tvos": + targetString = "tvos-device"; + break; + case "tvossimulator": + targetString = "tvos-simulator"; + break; } cmdStr += $" --output-directory={reportBase}/{action} --target={targetString}"; //To Do: target should be either emulator or device diff --git a/src/tests/xunit-wrappers.targets b/src/tests/xunit-wrappers.targets index 1730a0ea9a979..6f61f30dec57b 100644 --- a/src/tests/xunit-wrappers.targets +++ b/src/tests/xunit-wrappers.targets @@ -105,9 +105,9 @@ $(_XunitEpilog) $(Category).XUnitWrapper $(XunitWrapperGeneratedCSDirBase)$(Category) android - apple + apple false - true + true @@ -219,14 +219,14 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). string operatingSystem = Environment.GetEnvironmentVariable("OS")%3B runningInWindows = (operatingSystem != null && operatingSystem.StartsWith("Windows"))%3B - retCode = handler.InstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, device: String.Equals(%22$(TargetOS)%22, %22ios%22, StringComparison.OrdinalIgnoreCase))%3B + retCode = handler.InstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, %22$(TargetOS)%22.ToLowerInvariant())%3B Assert.True(retCode == 0, "Failed to install mobile app.")%3B } public void Dispose() { int retCode = -100%3B - retCode = handler.UninstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, device: String.Equals(%22$(TargetOS)%22, %22ios%22, StringComparison.OrdinalIgnoreCase))%3B + retCode = handler.UninstallMobileApp(%22$(MobilePlatform)%22, category, testBinaryBase, reportBase, %22$(TargetOS)%22.ToLowerInvariant())%3B Assert.True(retCode == 0, "Failed to uninstall mobile app.")%3B } } From 7ea8c3eb2539ee4a4bb4e3677c0df994c05b827b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 6 Apr 2023 12:56:38 +0200 Subject: [PATCH 149/166] Fix use of unassigned local variable --- src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs index 656510879cc07..a99716b15d50b 100644 --- a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs +++ b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs @@ -83,7 +83,7 @@ private static int HandleMobileApp(string action, string platform, string catego else // platform is apple { - string targetString; + string targetString = ""; switch (targetOS) { case "ios": From 1260591ce6257d8edfbdca8a7144e967007cbaf2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 6 Apr 2023 17:55:08 +0200 Subject: [PATCH 150/166] Exclude tvos tests which report Operation is not supported on this platform --- src/tests/issues.targets | 56 ++++++++++------------------------------ 1 file changed, 13 insertions(+), 43 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index a3d6fd2eb9516..bafac4c9d5f17 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4334,54 +4334,24 @@ - - - Build time issue + + + Operation is not supported on this platform. - - Build time issue + + Operation is not supported on this platform. - - Build time issue + + Operation is not supported on this platform. - - Build time issue + + Operation is not supported on this platform. - - Build time issue + + Operation is not supported on this platform. - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue - - - Build time issue + + Operation is not supported on this platform. From 5d177c294edf5d8d581f3d7fc768b89fc087614b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 6 Apr 2023 18:19:20 +0200 Subject: [PATCH 151/166] Extend EnsureCleanEnvoronment with IsTvOS check --- src/tests/issues.targets | 21 ------------------- .../tracing/eventpipe/common/IpcTraceTest.cs | 2 +- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index bafac4c9d5f17..35f3ffd58d286 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4334,27 +4334,6 @@ - - - Operation is not supported on this platform. - - - Operation is not supported on this platform. - - - Operation is not supported on this platform. - - - Operation is not supported on this platform. - - - Operation is not supported on this platform. - - - Operation is not supported on this platform. - - - mobile and wasm don't support tests with native libraries. wasm also needs static linking diff --git a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs index 9dcdd808d95f1..1d425315ebfba 100644 --- a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs +++ b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs @@ -344,7 +344,7 @@ private int Validate(bool enableRundownProvider = true) // the process that created them, so we don't need to check on that platform. static public bool EnsureCleanEnvironment() { - if (!OperatingSystem.IsWindows() && !OperatingSystem.IsIOS() && !OperatingSystem.IsBrowser()) + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsBrowser() && !OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS()) { Func<(IEnumerable>, List)> getPidsAndSockets = () => { From 66e20d01745787f2f06b908811add0bad50bb2fa Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 6 Apr 2023 19:09:17 +0200 Subject: [PATCH 152/166] Fix failed to connect to eventpipe --- src/tests/tracing/eventpipe/common/IpcTraceTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs index 1d425315ebfba..3f107c511d891 100644 --- a/src/tests/tracing/eventpipe/common/IpcTraceTest.cs +++ b/src/tests/tracing/eventpipe/common/IpcTraceTest.cs @@ -204,7 +204,7 @@ private int Validate(bool enableRundownProvider = true) Func optionalTraceValidationCallback = null; DiagnosticsClient client = new DiagnosticsClient(processId); #if DIAGNOSTICS_RUNTIME - if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) + if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS() || OperatingSystem.IsTvOS()) client = new DiagnosticsClient(new IpcEndpointConfig("127.0.0.1:9000", IpcEndpointConfig.TransportType.TcpSocket, IpcEndpointConfig.PortType.Listen)); #endif var readerTask = new Task(() => From ac762ddd07e44442c66487dd9cb08e7f17466b5c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 7 Apr 2023 10:40:27 +0200 Subject: [PATCH 153/166] Exclude /tracing/processinfo tests on tvOS and bump helix queue version --- .../coreclr/templates/helix-queues-setup.yml | 12 ++++++------ src/tests/issues.targets | 9 +++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 7f9f4ee9a598d..ca8b2297abe51 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,11 +34,11 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.1200.Arm64.Open + - OSX.1300.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.1200.Amd64.Open + - OSX.1300.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: @@ -56,17 +56,17 @@ jobs: - ${{ if in(parameters.platform, 'ios_arm64') }}: # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1015.Amd64.Iphone.Open - - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - OSX.1200.Amd64.Iphone.Open + - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: + - OSX.1300.Amd64.Iphone.Open # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1015.Amd64.AppleTV.Open + - OSX.1200.Amd64.AppleTV.Open - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1100.Amd64.AppleTV.Open + - OSX.1300.Amd64.AppleTV.Open # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 35f3ffd58d286..b32cc0e4ddce4 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4334,6 +4334,15 @@ + + + needs triage + + + needs triage + + + mobile and wasm don't support tests with native libraries. wasm also needs static linking From 842570cea82bb8b2478a67012a7b35d7edc11262 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 7 Apr 2023 11:20:36 +0200 Subject: [PATCH 154/166] Fix invalid helix queues --- .../coreclr/templates/helix-queues-setup.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index ca8b2297abe51..c71c5c702484c 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,11 +34,11 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.1300.Arm64.Open + - OSX.13.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.1300.Amd64.Open + - OSX.13.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: @@ -56,17 +56,17 @@ jobs: - ${{ if in(parameters.platform, 'ios_arm64') }}: # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1200.Amd64.Iphone.Open + - OSX.1015.Amd64.Iphone.Open - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1300.Amd64.Iphone.Open + - OSX.1200.Amd64.Iphone.Open # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1200.Amd64.AppleTV.Open + - OSX.12.Amd64.AppleTV.Open - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.1300.Amd64.AppleTV.Open + - OSX.13.Amd64.AppleTV.Open # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: From de7b969697edd709215405637e8f08aa1c5bb060 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 7 Apr 2023 12:56:16 +0200 Subject: [PATCH 155/166] Revert helix queue for ioslike-simulators --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index c71c5c702484c..96e009f02e285 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,11 +34,11 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.13.Arm64.Open + - OSX.1200.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.13.Amd64.Open + - OSX.1200.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: From f964fabbdb17752f2d936a61465266c8c8a9f844 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 7 Apr 2023 16:04:28 +0200 Subject: [PATCH 156/166] Disable failing tests on iossimulator --- src/tests/issues.targets | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b32cc0e4ddce4..c106f6474abd2 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4334,11 +4334,17 @@ - - + + needs triage - + + needs triage + + + needs triage + + needs triage From 5aa60aba998c62cef5833ad758909db09566a59c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 7 Apr 2023 17:20:10 +0200 Subject: [PATCH 157/166] Disable failing tests on iossimulator --- src/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index c106f6474abd2..1dea0deb44267 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4338,7 +4338,7 @@ needs triage - + needs triage From bf3b86cfd86192a3aeeecba29ca96acef34071ec Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 11 Apr 2023 11:53:48 +0200 Subject: [PATCH 158/166] Resolve PR comments --- eng/pipelines/common/global-build-job.yml | 4 ---- src/tests/Common/CLRTest.Execute.Bash.targets | 3 +-- src/tests/Common/Directory.Build.targets | 6 ------ src/tests/Common/helixpublishwitharcade.proj | 9 ++++----- src/tests/Directory.Build.props | 2 +- src/tests/build.proj | 12 ++++++------ src/tests/issues.targets | 8 +------- src/tests/tracing/eventpipe/common/IpcUtils.cs | 2 +- .../tracing/eventpipe/processinfo/processinfo.cs | 6 +++++- .../tracing/eventpipe/processinfo2/processinfo2.cs | 6 +++++- 10 files changed, 24 insertions(+), 34 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index ab08681a59509..b46d74360226a 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -117,10 +117,6 @@ jobs: - name: _monoAotCrossCompileArg value: 'cross' - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - name: runtimeFlavorArgs - value: '-mono' - - ${{ each variableTemplate in parameters.extraVariablesTemplates }}: - template: ${{ variableTemplate.template }} parameters: diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index fbb7c01f23c1f..fcf3eea777f21 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -60,8 +60,7 @@ WARNING: When setting properties based on their current state (for example: 0 @(RuntimeHostConfigurationOption -> '-p "%(Identity)=%(Value)"', ' ') - ios-simulator-64 - ios-simulator + ios-simulator-64 ios-device tvos-simulator tvos-device diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index 1179aee3bb317..7996b72521ae4 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -187,12 +187,6 @@ - - - - - - c:\gh\runtime - c:\bugs\spmicollect3\payload\correlation + c:\bugs\es\payload\correlation c:\bugs\es\payload\workitem <_Scenarios>normal <_Creator> @@ -350,6 +350,7 @@ Scenario=%(_Scenario.Identity);PayloadGroups=@(_MergedPayloadGroups);IsMergedTestWrapper=true + @@ -726,8 +727,8 @@ - - + + sos https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/flat2/dotnet-sos/$(DotnetSosVersion)/dotnet-sos.$(DotnetSosVersion).nupkg @@ -774,8 +775,6 @@ %(FileName)%(Extension) $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).apk - $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).app - %(FileName)%(Extension)/%(FileName)%(Extension).app diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index b9975d38e8c90..427fb95e0b420 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -205,7 +205,7 @@ false - + true true true diff --git a/src/tests/build.proj b/src/tests/build.proj index 5a9d141490f29..0f9c373f030a4 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -283,10 +283,10 @@ $(Category) - iossimulator - ios - tvossimulator - tvos + iossimulator + ios + tvossimulator + tvos $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimePackOSSuffix)-$(TargetArchitecture)/$(Configuration)/runtimes/$(RuntimePackOSSuffix)-$(TargetArchitecture) $(MicrosoftNetCoreAppRuntimePackDir)/native @@ -560,7 +560,7 @@ - + @@ -589,7 +589,7 @@ $(GroupBuildCmd) "/p:__SkipRestorePackages=1" $(GroupBuildCmd) /nodeReuse:false $(GroupBuildCmd) /maxcpucount - $(GroupBuildCmd) "/p:DevTeamProvisioning=-" + $(GroupBuildCmd) "/p:DevTeamProvisioning=-" $(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" $(GroupBuildCmd) "/p:IlcMultiModule=true" diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 1dea0deb44267..244260b948897 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -4096,7 +4096,7 @@ - + missing assembly @@ -4335,12 +4335,6 @@ - - needs triage - - - needs triage - needs triage diff --git a/src/tests/tracing/eventpipe/common/IpcUtils.cs b/src/tests/tracing/eventpipe/common/IpcUtils.cs index 34d24f6e24ca6..e2130f4525fe8 100644 --- a/src/tests/tracing/eventpipe/common/IpcUtils.cs +++ b/src/tests/tracing/eventpipe/common/IpcUtils.cs @@ -446,7 +446,7 @@ public static Stream GetStandardTransport(int processId) namedPipe.Connect(3); return namedPipe; } - else if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) + else if (OperatingSystem.IsAndroid() || OperatingSystem.IsIOS() || OperatingSystem.IsTvOS()) { TcpClient client = new TcpClient("127.0.0.1", 9000); return client.GetStream(); diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.cs b/src/tests/tracing/eventpipe/processinfo/processinfo.cs index 732a855e9441c..3d1ad39245db5 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.cs +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.cs @@ -143,7 +143,7 @@ public static int Main() Logger.logger.Log($"commandLine: \"{commandLine}\""); // ActiveIssue https://github.com/dotnet/runtime/issues/62729 - if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS()) + if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS()) { // The following logic is tailored to this specific test where the cmdline _should_ look like the following: // /path/to/corerun /path/to/processinfo.dll @@ -189,6 +189,10 @@ public static int Main() { expectedOSValue = "iOS"; } + else if (OperatingSystem.IsTvOS()) + { + expectedOSValue = "tvOS"; + } else { expectedOSValue = "Unknown"; diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs index e0cdb7b82d2ff..8b81cff7b4e0e 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs @@ -144,7 +144,7 @@ public static int Main() Logger.logger.Log($"commandLine: \"{commandLine}\""); // ActiveIssue https://github.com/dotnet/runtime/issues/62729 - if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS()) + if (!OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS()) { // The following logic is tailored to this specific test where the cmdline _should_ look like the following: // /path/to/corerun /path/to/processinfo.dll @@ -190,6 +190,10 @@ public static int Main() { expectedOSValue = "iOS"; } + else if (OperatingSystem.IsTvOS()) + { + expectedOSValue = "tvOS"; + } else { expectedOSValue = "Unknown"; From e071b0d650c028c17eb31686573e305750a19737 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 11 Apr 2023 16:47:19 +0200 Subject: [PATCH 159/166] Match tvos system name for processinfo tests --- src/tests/tracing/eventpipe/processinfo/processinfo.cs | 6 +----- src/tests/tracing/eventpipe/processinfo2/processinfo2.cs | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.cs b/src/tests/tracing/eventpipe/processinfo/processinfo.cs index 3d1ad39245db5..a62865bf2dff8 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.cs +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.cs @@ -185,14 +185,10 @@ public static int Main() { expectedOSValue = "Android"; } - else if (OperatingSystem.IsIOS()) + else if (OperatingSystem.IsIOS() || OperatingSystem.IsTvOS()) { expectedOSValue = "iOS"; } - else if (OperatingSystem.IsTvOS()) - { - expectedOSValue = "tvOS"; - } else { expectedOSValue = "Unknown"; diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs index 8b81cff7b4e0e..0c04dd3caef87 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs @@ -186,14 +186,10 @@ public static int Main() { expectedOSValue = "Android"; } - else if (OperatingSystem.IsIOS()) + else if (OperatingSystem.IsIOS() || OperatingSystem.IsTvOS()) { expectedOSValue = "iOS"; } - else if (OperatingSystem.IsTvOS()) - { - expectedOSValue = "tvOS"; - } else { expectedOSValue = "Unknown"; From f71561989ea43fc04c6ee7fc90ad8f2c8e96959f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 11 Apr 2023 17:05:20 +0200 Subject: [PATCH 160/166] Revert path change --- src/tests/Common/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 4ae49b59fde5c..13683cb2b3593 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -24,7 +24,7 @@ c:\gh\runtime c:\bugs\es\payload\correlation - c:\bugs\es\payload\workitem + c:\bugs\spmicollect3\payload\workitem <_Scenarios>normal <_Creator> <_HelixAccessToken> From 20ff0f2c8be787b64b6e4d56671e205df9e0ff06 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 11 Apr 2023 22:03:26 +0200 Subject: [PATCH 161/166] Bump to new OSX 13 AppleTV queue --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 4 ---- eng/pipelines/libraries/helix-queues-setup.yml | 4 ---- 2 files changed, 8 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 96e009f02e285..272bd4282c982 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -62,10 +62,6 @@ jobs: # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - # split traffic for runtime-extra-platforms (which mostly runs on rolling builds) - - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.12.Amd64.AppleTV.Open - - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - OSX.13.Amd64.AppleTV.Open # Linux arm diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 32681c5466b01..45ceb2676b989 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -125,10 +125,6 @@ jobs: # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - # if necessary, you can split traffic between queues this way for PR's and rolling builds - - ${{ if ne(parameters.jobParameters.isExtraPlatforms, true) }}: - - OSX.13.Amd64.AppleTV.Open - - ${{ if eq(parameters.jobParameters.isExtraPlatforms, true) }}: - OSX.13.Amd64.AppleTV.Open # windows x64 From cbccac5a02cd881444c917005736670c8d936465 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Apr 2023 09:23:29 +0200 Subject: [PATCH 162/166] Resolve PR comments --- src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs | 2 +- src/tests/Common/dirs.proj | 1 + src/tests/Common/helixpublishwitharcade.proj | 1 + src/tests/build.proj | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs index a99716b15d50b..83bb3ac622388 100644 --- a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs +++ b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs @@ -100,7 +100,7 @@ private static int HandleMobileApp(string action, string platform, string catego break; } - cmdStr += $" --output-directory={reportBase}/{action} --target={targetString}"; //To Do: target should be either emulator or device + cmdStr += $" --output-directory={reportBase}/{action} --target={targetString}"; if (action == "install") { diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index 622d780ebbaa2..36f21aa6de564 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -72,6 +72,7 @@ 3 + <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\"> 4 diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 13683cb2b3593..ec914433636c8 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -782,6 +782,7 @@ %(FileName)%(Extension) $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).apk + $(MergedPayloadsRootDirectory)%(FileName)%(Extension)/%(FileName)%(Extension).app diff --git a/src/tests/build.proj b/src/tests/build.proj index 0f9c373f030a4..4301cb94ee385 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -292,7 +292,7 @@ - + True @@ -560,7 +560,7 @@ - + From 3645feeaf341f7bec69a54102d0abb0d521b5e32 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 14 Apr 2023 17:07:04 +0200 Subject: [PATCH 163/166] Resolve PR comments --- .../runtime-extra-platforms-ioslike.yml | 2 ++ .../runtime-extra-platforms-ioslikesimulator.yml | 2 ++ eng/pipelines/libraries/helix-queues-setup.yml | 2 +- .../Common/Coreclr.TestWrapper/MobileAppHandler.cs | 1 - src/tests/Common/dirs.proj | 5 ----- src/tests/Common/helixpublishwitharcade.proj | 14 +++++++------- src/tests/build.proj | 6 ++---- src/tests/issues.targets | 14 +++++++------- 8 files changed, 21 insertions(+), 25 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 5e2e23db97546..f856d6211df25 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -82,4 +82,6 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot + # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 + testBuildArgs: tree tracing/eventpipe testRunNamePrefixSuffix: Mono_$(_BuildConfig) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 1a82b89e9cf40..4de8164bf6131 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -86,4 +86,6 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot + # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 + testBuildArgs: tree tracing/eventpipe testRunNamePrefixSuffix: Mono_$(_BuildConfig) diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 45ceb2676b989..48b1323705d3f 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -125,7 +125,7 @@ jobs: # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - - OSX.13.Amd64.AppleTV.Open + - OSX.13.Amd64.AppleTV.Open # windows x64 - ${{ if eq(parameters.platform, 'windows_x64') }}: diff --git a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs index 83bb3ac622388..b90ddb1972155 100644 --- a/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs +++ b/src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs @@ -82,7 +82,6 @@ private static int HandleMobileApp(string action, string platform, string catego } else // platform is apple { - string targetString = ""; switch (targetOS) { diff --git a/src/tests/Common/dirs.proj b/src/tests/Common/dirs.proj index 36f21aa6de564..2233c0702c81f 100644 --- a/src/tests/Common/dirs.proj +++ b/src/tests/Common/dirs.proj @@ -71,11 +71,6 @@ <_GroupStartsWith Include="$(TestRoot)JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b35351\b35351.ilproj"> 3 - - - <_GroupStartsWith Include="$(TestRoot)tracing\eventpipe\"> - 4 - diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index ec914433636c8..cb8056770eb6c 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -23,7 +23,7 @@ c:\gh\runtime - c:\bugs\es\payload\correlation + c:\bugs\spmicollect3\payload\correlation c:\bugs\spmicollect3\payload\workitem <_Scenarios>normal <_Creator> @@ -842,12 +842,12 @@ - - ios-simulator-64 - tvos-simulator - ios-device - tvos-device - maccatalyst + + ios-simulator-64 + tvos-simulator + ios-device + tvos-device + maccatalyst diff --git a/src/tests/build.proj b/src/tests/build.proj index 4301cb94ee385..9445fa8a3b9c6 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -558,10 +558,8 @@ - - - - + + - + needs triage @@ -2815,7 +2815,7 @@ - + expected failure: overlapped structs fail at AOT compile time, not runtime @@ -3175,7 +3175,7 @@ - + https://github.com/dotnet/runtime/issues/48914 @@ -3244,7 +3244,7 @@ - + https://github.com/dotnet/runtime/issues/57350 @@ -4086,7 +4086,7 @@ - + missing assembly @@ -4321,7 +4321,7 @@ - + needs triage @@ -4330,7 +4330,7 @@ - + mobile and wasm don't support tests with native libraries. wasm also needs static linking From f220b4e2ea7a92bd3be175e6b345afe9bc78bc16 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 17 Apr 2023 10:36:00 +0200 Subject: [PATCH 164/166] Test iossimulator_arm64 on rolling builds --- .../runtime-extra-platforms-ioslikesimulator.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 4de8164bf6131..e6a8fa46c2841 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -58,10 +58,10 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - iossimulator_x64 - - tvossimulator_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + # - iossimulator_x64 + # - tvossimulator_x64 + # - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource From ec4988b8bd2920f95bf4b6df2bceeaf141c371b4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 18 Apr 2023 05:13:26 +0200 Subject: [PATCH 165/166] Revert test iossimulator_arm64 on rolling builds --- .../runtime-extra-platforms-ioslikesimulator.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index e6a8fa46c2841..4de8164bf6131 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -58,10 +58,10 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # - iossimulator_x64 - # - tvossimulator_x64 - # - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_x64 + - tvossimulator_x64 + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource From d6fd78ade1749438efbe21ddae129947016728f1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 18 Apr 2023 16:37:07 +0200 Subject: [PATCH 166/166] Remove isRollingBuild condition --- .../runtime-extra-platforms-ioslikesimulator.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 4de8164bf6131..308fbd384e943 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -60,8 +60,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource