From 036b31762c8d8b026ef80fef07812a92462a6efe Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 14:24:34 -0400 Subject: [PATCH 1/7] Bump sdk used for testing to 6.0.100-rc.1.21402.6 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 2a4f7a6a74987..7a7dc64fb6aee 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -162,7 +162,7 @@ 2.0.4 4.12.0 2.14.3 - 6.0.100-rc.1.21370.2 + 6.0.100-rc.1.21402.6 5.0.0-preview-20201009.2 From 5707c4b480268e1ca0abeff1e810ee8f1040427f Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 14:32:04 -0400 Subject: [PATCH 2/7] InstallWorkloadFromArtifacts: Add OnlyUpdateManifests parameter --- src/tasks/WorkloadBuildTasks/InstallWorkloadFromArtifacts.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tasks/WorkloadBuildTasks/InstallWorkloadFromArtifacts.cs b/src/tasks/WorkloadBuildTasks/InstallWorkloadFromArtifacts.cs index 4b4a283dc652f..295ee92cdcf3f 100644 --- a/src/tasks/WorkloadBuildTasks/InstallWorkloadFromArtifacts.cs +++ b/src/tasks/WorkloadBuildTasks/InstallWorkloadFromArtifacts.cs @@ -30,6 +30,8 @@ public class InstallWorkloadFromArtifacts : Task [Required, NotNull] public string? SdkDir { get; set; } + public bool OnlyUpdateManifests{ get; set; } + public ITaskItem[] ExtraNuGetSources { get; set; } = Array.Empty(); public override bool Execute() @@ -52,6 +54,9 @@ public override bool Execute() if (!InstallWorkloadManifest(WorkloadId.GetMetadata("ManifestName"), WorkloadId.GetMetadata("Version"), nugetConfigContents, stopOnMissing: true)) return false; + if (OnlyUpdateManifests) + return !Log.HasLoggedErrors; + string nugetConfigPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); File.WriteAllText(nugetConfigPath, nugetConfigContents); From 60850c00bb2001d02d316e82060d0f35b70c56dc Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 14:34:12 -0400 Subject: [PATCH 3/7] [wasm] Run Wasm.Build.Tests with sdk/no-workload/+EMSDK Currently, Wasm.Build.Tests are run in two modes: 1. sdk(`$(SdkVersionForWorkloadTesting)`)+workload installed 2. sdk(from global.json)+EMSDK+LocalBuild targets this commit changes (2) to: 2. sdk(`$(SdkVersionForWorkloadTesting)`), no workload installed, + EMSDK+LocalBuild targets This makes it closer to what a user would actually use. Also, for the workload tests, this removes `$(WasmNativeWorkload)` always being set to `true`. The workload should be setting that, and not the tests. --- eng/testing/tests.mobile.targets | 4 -- src/libraries/Directory.Build.props | 13 +++- src/libraries/Directory.Build.targets | 2 - src/libraries/sendtohelixhelp.proj | 41 +++++++----- src/libraries/workloads-testing.targets | 62 +++++++++++++++---- .../WorkloadManifest.targets.in | 23 ++++++- .../Wasm.Build.Tests/BuildEnvironment.cs | 37 ++++++----- .../Wasm.Build.Tests/BuildTestBase.cs | 42 ++++++++----- .../Wasm.Build.Tests/CommandResult.cs | 7 ++- .../Wasm.Build.Tests/EnvironmentVariables.cs | 1 + .../Wasm.Build.Tests/Wasm.Build.Tests.csproj | 2 + .../data/Local.Directory.Build.props | 3 - .../data/RunScriptTemplate.cmd | 4 ++ .../data/RunScriptTemplate.sh | 5 ++ .../data/Workloads.Directory.Build.props | 1 - 15 files changed, 166 insertions(+), 81 deletions(-) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 6c01e8c896742..b52d11e84291c 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -7,10 +7,6 @@ true BundleTestAppleApp;BundleTestAndroidApp - - - true diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index 05ea159b1bb3b..c56f764d5f538 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -164,10 +164,17 @@ - $(ArtifactsBinDir)dotnet-workload\ - $([MSBuild]::NormalizeDirectory($(SdkPathForWorkloadTesting))) + $(ArtifactsBinDir)sdk-no-workload\ + $([MSBuild]::NormalizeDirectory($(SdkWithNoWorkloadForTestingPath))) - $(SdkPathForWorkloadTesting)version-$(SdkVersionForWorkloadTesting).stamp + $(SdkWithNoWorkloadForTestingPath)version-$(SdkVersionForWorkloadTesting).stamp + $(SdkWithWorkloadForTestingPath)workload.stamp + + $(ArtifactsBinDir)dotnet-workload\ + $([MSBuild]::NormalizeDirectory($(SdkWithWorkloadForTestingPath))) + + $(SdkWithWorkloadForTestingPath)version-$(SdkVersionForWorkloadTesting).stamp + $(SdkWithWorkloadForTestingPath)workload.stamp diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets index 1964e8ef8b8f9..eb328ef4820ae 100644 --- a/src/libraries/Directory.Build.targets +++ b/src/libraries/Directory.Build.targets @@ -10,8 +10,6 @@ true - - $(SdkPathForWorkloadTesting)workload.stamp diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj index 08bdf4fdb0702..f3897a0f6454d 100644 --- a/src/libraries/sendtohelixhelp.proj +++ b/src/libraries/sendtohelixhelp.proj @@ -54,12 +54,14 @@ $(TestRunNamePrefix)$(Scenario)- $(WaitForWorkItemCompletion) - true $(RepoRoot)src\mono\wasm\emsdk\ - true - true + true + true true + + dotnet-workload + sdk-no-workload @@ -161,21 +163,21 @@ - - - + + + - - + + - - + + - - + + - + @@ -354,12 +356,17 @@ - + + + - - + + + + diff --git a/src/libraries/workloads-testing.targets b/src/libraries/workloads-testing.targets index d08c59575255c..3e668a38c2400 100644 --- a/src/libraries/workloads-testing.targets +++ b/src/libraries/workloads-testing.targets @@ -1,12 +1,32 @@ - - + + + + + + + + + + + + <_SourceFiles Include="$(SdkWithNoWorkloadForTestingPath)\**" /> + + + + + + + + - + - - + + <_DotNetInstallScriptPath Condition="!$([MSBuild]::IsOSPlatform('windows'))">$(DOTNET_INSTALL_DIR)/dotnet-install.sh @@ -14,12 +34,12 @@ + Command="chmod +x $(_DotNetInstallScriptPath); $(_DotNetInstallScriptPath) -i $(SdkWithNoWorkloadForTestingPath) -v $(SdkVersionForWorkloadTesting)" /> + Command='powershell -ExecutionPolicy ByPass -NoProfile -command "& $(_DotNetInstallScriptPath) -InstallDir $(SdkWithNoWorkloadForTestingPath) -Version $(SdkVersionForWorkloadTesting)"' /> - + @@ -40,10 +60,12 @@ + + + Outputs="$(SdkWithWorkload_WorkloadStampPath)"> <_PropsForAOTCrossBuild Include="TestingWorkloads=true" /> @@ -79,8 +101,22 @@ VersionBand="$(SdkBandVersion)" LocalNuGetsPath="$(LibrariesShippingPackagesDir)" ExtraNuGetSources="@(_NuGetSourceForWorkloads)" - SdkDir="$(SdkPathForWorkloadTesting)" /> + SdkDir="$(SdkWithWorkloadForTestingPath)" /> + + + + + + - + diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.targets.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.targets.in index 276bf507f5c36..d9a9dc2a72d46 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.targets.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.targets.in @@ -1,17 +1,33 @@ - + ${PackageVersion} + true + + + <_NativeBuildNeeded Condition="'$(RunAOTCompilation)' == 'true'">true + WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+ + + true $(WasmNativeWorkload) + + + false + false + + false true - + @@ -112,4 +128,7 @@ /> + + + diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs index 2212d57b2377e..8e9be9ee967c4 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs @@ -6,6 +6,8 @@ using System.IO; using System.Runtime.InteropServices; +#nullable enable + namespace Wasm.Build.Tests { public class BuildEnvironment @@ -40,9 +42,14 @@ public BuildEnvironment() } string? sdkForWorkloadPath = EnvironmentVariables.SdkForWorkloadTestingPath; - if (!string.IsNullOrEmpty(sdkForWorkloadPath)) + if (string.IsNullOrEmpty(sdkForWorkloadPath)) + throw new Exception($"Environment variable SDK_FOR_WORKLOAD_TESTING_PATH not set"); + if (!Directory.Exists(sdkForWorkloadPath)) + throw new Exception($"Could not find SDK_FOR_WORKLOAD_TESTING_PATH={sdkForWorkloadPath}"); + + bool workloadInstalled = EnvironmentVariables.SdkHasWorkloadInstalled != null && EnvironmentVariables.SdkHasWorkloadInstalled == "true"; + if (workloadInstalled) { - DotNet = Path.Combine(sdkForWorkloadPath, "dotnet"); var workloadPacksVersion = EnvironmentVariables.WorkloadPacksVersion; if (string.IsNullOrEmpty(workloadPacksVersion)) throw new Exception($"Cannot test with workloads without WORKLOAD_PACKS_VER environment variable being set"); @@ -50,17 +57,7 @@ public BuildEnvironment() RuntimePackDir = Path.Combine(sdkForWorkloadPath, "packs", "Microsoft.NETCore.App.Runtime.Mono.browser-wasm", workloadPacksVersion); DirectoryBuildPropsContents = s_directoryBuildPropsForWorkloads; DirectoryBuildTargetsContents = s_directoryBuildTargetsForWorkloads; - EnvVars = new Dictionary() - { - // `runtime` repo's build environment sets these, and they - // mess up the build for the test project, which is using a different - // dotnet - ["DOTNET_INSTALL_DIR"] = sdkForWorkloadPath, - ["DOTNET_MULTILEVEL_LOOKUP"] = "0", - ["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1", - ["MSBuildSDKsPath"] = string.Empty, - ["PATH"] = $"{sdkForWorkloadPath}{Path.PathSeparator}{Environment.GetEnvironmentVariable("PATH")}" - }; + EnvVars = new Dictionary(); var appRefDir = EnvironmentVariables.AppRefDir; if (string.IsNullOrEmpty(appRefDir)) @@ -95,11 +92,7 @@ public BuildEnvironment() DefaultBuildArgs = $" /p:RuntimeSrcDir={solutionRoot.FullName} /p:RuntimeConfig={s_runtimeConfig} /p:EMSDK_PATH={emsdkPath} "; } - // for EMSDK runs, we don't want to get the dependencies from workloads - DefaultBuildArgs += " /p:MSBuildEnableWorkloadResolver=false"; - IsWorkload = false; - DotNet = "dotnet"; EnvVars = new Dictionary() { ["EMSDK_PATH"] = emsdkPath @@ -109,7 +102,17 @@ public BuildEnvironment() DirectoryBuildTargetsContents = s_directoryBuildTargetsForLocal; } + // `runtime` repo's build environment sets these, and they + // mess up the build for the test project, which is using a different + // dotnet + EnvVars["DOTNET_INSTALL_DIR"] = sdkForWorkloadPath; + EnvVars["DOTNET_MULTILEVEL_LOOKUP"] = "0"; + EnvVars["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1"; + EnvVars["MSBuildSDKsPath"] = string.Empty; + EnvVars["PATH"] = $"{sdkForWorkloadPath}{Path.PathSeparator}{Environment.GetEnvironmentVariable("PATH")}"; + RuntimeNativeDir = Path.Combine(RuntimePackDir, "runtimes", "browser-wasm", "native"); + DotNet = Path.Combine(sdkForWorkloadPath!, "dotnet"); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) DotNet += ".exe"; diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildTestBase.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildTestBase.cs index 6d08fe8512461..e5d0b2e78cd70 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildTestBase.cs +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildTestBase.cs @@ -43,28 +43,36 @@ public abstract class BuildTestBase : IClassFixture EnsureExitCode(0, messagePrefix, suppressOutput); + + public void EnsureExitCode(int expectedExitCode = 0, string messagePrefix = "", bool suppressOutput = false) { - if (ExitCode != 0) + if (ExitCode != expectedExitCode) { - StringBuilder message = new StringBuilder($"{messagePrefix} Command failed with exit code {ExitCode}: {StartInfo.FileName} {StartInfo.Arguments}"); + StringBuilder message = new StringBuilder($"{messagePrefix} Expected {expectedExitCode} exit code but got {ExitCode}: {StartInfo.FileName} {StartInfo.Arguments}"); if (!suppressOutput) { diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/EnvironmentVariables.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/EnvironmentVariables.cs index 5ab3ad4108cab..506aafe44b7f3 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/EnvironmentVariables.cs +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/EnvironmentVariables.cs @@ -10,6 +10,7 @@ namespace Wasm.Build.Tests internal static class EnvironmentVariables { internal static readonly string? SdkForWorkloadTestingPath = Environment.GetEnvironmentVariable("SDK_FOR_WORKLOAD_TESTING_PATH"); + internal static readonly string? SdkHasWorkloadInstalled = Environment.GetEnvironmentVariable("SDK_HAS_WORKLOAD_INSTALLED"); internal static readonly string? WorkloadPacksVersion = Environment.GetEnvironmentVariable("WORKLOAD_PACKS_VER"); internal static readonly string? AppRefDir = Environment.GetEnvironmentVariable("AppRefDir"); internal static readonly string? WasmBuildSupportDir = Environment.GetEnvironmentVariable("WasmBuildSupportDir"); diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj index d6709715ef045..2994b3f7acbaa 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj @@ -13,7 +13,9 @@ TEST_DEBUG_CONFIG_ALSO false + true + true diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.props b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.props index 3282feb5b3553..1a9c112e747d9 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.props +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.props @@ -1,8 +1,5 @@ - - false - <_WasmTargetsDir Condition="'$(RuntimeSrcDir)' != ''">$(RuntimeSrcDir)\src\mono\wasm\build\ <_WasmTargetsDir Condition="'$(WasmBuildSupportDir)' != ''">$(WasmBuildSupportDir)\wasm\ $(WasmBuildSupportDir)\emsdk\ diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.cmd b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.cmd index 0c2cfd89d1ee7..95772327e6a25 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.cmd +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.cmd @@ -44,9 +44,13 @@ REM Functions :SetEnvVars if [%TEST_USING_WORKLOADS%] == [true] ( set "PATH=%BASE_DIR%\dotnet-workload;%PATH%" + set SDK_HAS_WORKLOAD_INSTALLED=true set "SDK_FOR_WORKLOAD_TESTING_PATH=%BASE_DIR%\dotnet-workload" set "AppRefDir=%BASE_DIR%\microsoft.netcore.app.ref" ) else ( + set "PATH=%BASE_DIR%\sdk-no-workload;%PATH%" + set SDK_HAS_WORKLOAD_INSTALLED=false + set "SDK_FOR_WORKLOAD_TESTING_PATH=%BASE_DIR%\sdk-no-workload" set "WasmBuildSupportDir=%BASE_DIR%\build" ) EXIT /b 0 diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.sh b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.sh index d210c70ad068b..66f889350dd4f 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.sh +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/RunScriptTemplate.sh @@ -22,10 +22,15 @@ function set_env_vars() { if [ "x$TEST_USING_WORKLOADS" = "xtrue" ]; then export PATH=$BASE_DIR/dotnet-workload:$PATH + export SDK_HAS_WORKLOAD_INSTALLED=true export SDK_FOR_WORKLOAD_TESTING_PATH=$BASE_DIR/dotnet-workload export AppRefDir=$BASE_DIR/microsoft.netcore.app.ref elif [ ! -z "$HELIX_WORKITEM_UPLOAD_ROOT" ]; then export WasmBuildSupportDir=$BASE_DIR/build + else + export PATH=$BASE_DIR/sdk-no-workload:$PATH + export SDK_HAS_WORKLOAD_INSTALLED=false + export SDK_FOR_WORKLOAD_TESTING_PATH=$BASE_DIR/sdk-no-workload fi } diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.props b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.props index 6d8504088b955..2cae1d8ab9680 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.props +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.props @@ -1,7 +1,6 @@ browser-wasm - true true From 4b09e3bf0c806e3104d0cbbe161790868efdbf54 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 14:40:25 -0400 Subject: [PATCH 4/7] Wasm.Build.Tests: Add test for net5.0 blazor projects --- .../Wasm.Build.Tests/BlazorWasmTests.cs | 62 ++++++++++++++++ .../testassets/Blazor_net50/App.razor | 10 +++ .../Blazor_net50/Blazor_net50.csproj | 13 ++++ .../Blazor_net50/Pages/Counter.razor | 16 +++++ .../Blazor_net50/Pages/FetchData.razor | 55 +++++++++++++++ .../testassets/Blazor_net50/Pages/Index.razor | 7 ++ .../testassets/Blazor_net50/Program.cs | 25 +++++++ .../Blazor_net50/Shared/MainLayout.razor | 17 +++++ .../Blazor_net50/Shared/MainLayout.razor.css | 70 +++++++++++++++++++ .../Blazor_net50/Shared/NavMenu.razor | 37 ++++++++++ .../Blazor_net50/Shared/NavMenu.razor.css | 62 ++++++++++++++++ .../Blazor_net50/Shared/SurveyPrompt.razor | 16 +++++ .../testassets/Blazor_net50/_Imports.razor | 10 +++ 13 files changed, 400 insertions(+) create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/App.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Blazor_net50.csproj create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Counter.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/FetchData.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Index.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Program.cs create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor.css create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor.css create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/SurveyPrompt.razor create mode 100644 src/tests/BuildWasmApps/testassets/Blazor_net50/_Imports.razor diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/BlazorWasmTests.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/BlazorWasmTests.cs index 002ca2480311a..2059142de0971 100644 --- a/src/tests/BuildWasmApps/Wasm.Build.Tests/BlazorWasmTests.cs +++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/BlazorWasmTests.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Collections.Generic; using System.IO; using Xunit; using Xunit.Abstractions; @@ -55,5 +56,66 @@ public void PublishTemplateProject(string config, bool aot) // // playwright? } + + public static TheoryData Net50TestData = new() + { + { "Debug", /*aot*/ true, /*expectError*/ true }, + { "Debug", /*aot*/ false, /*expectError*/ false }, + { "Release", /*aot*/ true, /*expectError*/ true }, + { "Release", /*aot*/ false, /*expectError*/ false } + }; + + [ConditionalTheory(typeof(BuildTestBase), nameof(IsNotUsingWorkloads))] + [MemberData(nameof(Net50TestData))] + public void Net50ProjectsWithNoPacksInstalled(string config, bool aot, bool expectError) + => BuildNet50Project(config, aot, expectError); + + [ConditionalTheory(typeof(BuildTestBase), nameof(IsUsingWorkloads))] + [MemberData(nameof(Net50TestData))] + public void Net50ProjectsWithPacksInstalled(string config, bool aot, bool expectError) + => BuildNet50Project(config, aot, expectError); + + private void BuildNet50Project(string config, bool aot, bool errorExpected) + { + string id = $"Blazor_net50_{config}_{aot}"; + InitPaths(id); + if (Directory.Exists(_projectDir)) + Directory.Delete(_projectDir, recursive: true); + Directory.CreateDirectory(_projectDir); + Directory.CreateDirectory(Path.Combine(_projectDir, ".nuget")); + + string directoryBuildTargets = @" + + + + "; + + File.Copy(Path.Combine(BuildEnvironment.TestDataPath, "nuget6.config"), Path.Combine(_projectDir, "nuget.config")); + File.WriteAllText(Path.Combine(_projectDir, "Directory.Build.props"), ""); + File.WriteAllText(Path.Combine(_projectDir, "Directory.Build.targets"), directoryBuildTargets); + + string logPath = Path.Combine(s_buildEnv.LogRootPath, id); + Utils.DirectoryCopy(Path.Combine(BuildEnvironment.TestAssetsPath, "Blazor_net50"), Path.Combine(_projectDir!)); + + string publishLogPath = Path.Combine(logPath, $"{id}.binlog"); + CommandResult result = new DotNetCommand(s_buildEnv) + .WithWorkingDirectory(_projectDir) + .ExecuteWithCapturedOutput("publish", + $"-bl:{publishLogPath}", + (aot ? "-p:RunAOTCompilation=true" : ""), + $"-p:Configuration={config}"); + + if (errorExpected) + { + result.EnsureExitCode(1); + Assert.Contains("** UsingBrowserRuntimeWorkload: 'false'", result.Output); + Assert.Contains("error : WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+", result.Output); + } + else + { + result.EnsureSuccessful(); + Assert.Contains("** UsingBrowserRuntimeWorkload: 'false'", result.Output); + } + } } } diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/App.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/App.razor new file mode 100644 index 0000000000000..b941644e298f1 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/App.razor @@ -0,0 +1,10 @@ + + + + + + +

Sorry, there's nothing at this address.

+
+
+
diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Blazor_net50.csproj b/src/tests/BuildWasmApps/testassets/Blazor_net50/Blazor_net50.csproj new file mode 100644 index 0000000000000..533c04800b235 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Blazor_net50.csproj @@ -0,0 +1,13 @@ + + + + net5.0 + + + + + + + + + diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Counter.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Counter.razor new file mode 100644 index 0000000000000..8641f781999a9 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Counter.razor @@ -0,0 +1,16 @@ +@page "/counter" + +

Counter

+ +

Current count: @currentCount

+ + + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/FetchData.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/FetchData.razor new file mode 100644 index 0000000000000..4432ee5d90174 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/FetchData.razor @@ -0,0 +1,55 @@ +@page "/fetchdata" +@inject HttpClient Http + +

Weather forecast

+ +

This component demonstrates fetching data from the server.

+ +@if (forecasts == null) +{ +

Loading...

+} +else +{ + + + + + + + + + + + @foreach (var forecast in forecasts) + { + + + + + + + } + +
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
+} + +@code { + private WeatherForecast[] forecasts; + + protected override async Task OnInitializedAsync() + { + forecasts = await Http.GetFromJsonAsync("sample-data/weather.json"); + } + + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public string Summary { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Index.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Index.razor new file mode 100644 index 0000000000000..e54d914390e1d --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Pages/Index.razor @@ -0,0 +1,7 @@ +@page "/" + +

Hello, world!

+ +Welcome to your new app. + + diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Program.cs b/src/tests/BuildWasmApps/testassets/Blazor_net50/Program.cs new file mode 100644 index 0000000000000..b1926ec328b4e --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Program.cs @@ -0,0 +1,25 @@ +using System; +using System.Net.Http; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Text; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace Blazor_net50 +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + builder.RootComponents.Add("#app"); + + builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + + await builder.Build().RunAsync(); + } + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor new file mode 100644 index 0000000000000..b416cb95698cc --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor @@ -0,0 +1,17 @@ +@inherits LayoutComponentBase + +
+ + +
+
+ About +
+ +
+ @Body +
+
+
diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor.css b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor.css new file mode 100644 index 0000000000000..43c355a47ac73 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/MainLayout.razor.css @@ -0,0 +1,70 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +.main { + flex: 1; +} + +.sidebar { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + } + + .top-row a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row:not(.auth) { + display: none; + } + + .top-row.auth { + justify-content: space-between; + } + + .top-row a, .top-row .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .main > div { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor new file mode 100644 index 0000000000000..d2f6197a2433d --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor @@ -0,0 +1,37 @@ + + +
+ +
+ +@code { + private bool collapseNavMenu = true; + + private string NavMenuCssClass => collapseNavMenu ? "collapse" : null; + + private void ToggleNavMenu() + { + collapseNavMenu = !collapseNavMenu; + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor.css b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor.css new file mode 100644 index 0000000000000..acc5f9f819197 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/NavMenu.razor.css @@ -0,0 +1,62 @@ +.navbar-toggler { + background-color: rgba(255, 255, 255, 0.1); +} + +.top-row { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand { + font-size: 1.1rem; +} + +.oi { + width: 2rem; + font-size: 1.1rem; + vertical-align: text-top; + top: -2px; +} + +.nav-item { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type { + padding-top: 1rem; + } + + .nav-item:last-of-type { + padding-bottom: 1rem; + } + + .nav-item ::deep a { + color: #d7d7d7; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: white; +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block; + } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/SurveyPrompt.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/SurveyPrompt.razor new file mode 100644 index 0000000000000..67828b574bb9d --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/Shared/SurveyPrompt.razor @@ -0,0 +1,16 @@ + + +@code { + // Demonstrates how a parent component can supply parameters + [Parameter] + public string Title { get; set; } +} diff --git a/src/tests/BuildWasmApps/testassets/Blazor_net50/_Imports.razor b/src/tests/BuildWasmApps/testassets/Blazor_net50/_Imports.razor new file mode 100644 index 0000000000000..d6b66f28b94f7 --- /dev/null +++ b/src/tests/BuildWasmApps/testassets/Blazor_net50/_Imports.razor @@ -0,0 +1,10 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using Blazor_net50 +@using Blazor_net50.Shared From 6fa0efe2ffcfdbcfaba3bdf519a7717809c22672 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 14:50:08 -0400 Subject: [PATCH 5/7] Disable unrelated builds for now --- eng/pipelines/runtime-staging.yml | 550 ++++---- eng/pipelines/runtime.yml | 1930 ++++++++++++++--------------- 2 files changed, 1240 insertions(+), 1240 deletions(-) diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 27843c8959dd4..a4e918e1ea508 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -58,262 +58,262 @@ jobs: # iOS/tvOS/Catalyst 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 - - iOSSimulator_x64 - - tvOSSimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isFullMatrix'], true) }}: - - MacCatalyst_arm64 - - iOSSimulator_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.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - interpreter: true - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +#- 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 + #- iOSSimulator_x64 + #- tvOSSimulator_x64 + ## don't run tests on arm64 PRs until we can get significantly more devices + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- MacCatalyst_arm64 + #- iOSSimulator_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.containsChange'] ] + #jobParameters: + #testGroup: innerloop + #nameSuffix: AllSubsets_Mono + #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], true)) + ## extra steps, run tests + #extraStepsTemplate: /eng/pipelines/libraries/helix.yml + #extraStepsParameters: + #creator: dotnet-bot + #interpreter: true + #testRunNamePrefixSuffix: Mono_$(_BuildConfig) + #condition: >- + #or( + #eq(variables['librariesContainsChange'], true), + #eq(variables['monoContainsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# 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: - - Android_x86 - - Android_x64 - 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.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) +## +## 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: + #- Android_x86 + #- Android_x64 + #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.containsChange'] ] + #jobParameters: + #testGroup: innerloop + #nameSuffix: AllSubsets_Mono + #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + #timeoutInMinutes: 180 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -- 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: - - Android_arm - - Android_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.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +#- 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: + #- Android_arm + #- Android_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.containsChange'] ] + #jobParameters: + #testGroup: innerloop + #nameSuffix: AllSubsets_Mono + #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + #timeoutInMinutes: 180 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], true)) - # don't run tests on PRs until we can get significantly more devices - ${{ if eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) + ## don't run tests on PRs until we can get significantly more devices + #${{ if eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -# -# 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: - - Windows_x64 - 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.containsChange'] ] - jobParameters: - testScope: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) +## +## 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: + #- Windows_x64 + #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.containsChange'] ] + #jobParameters: + #testScope: innerloop + #nameSuffix: AllSubsets_Mono + #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + #timeoutInMinutes: 120 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -# -# Build the whole product using Mono for Android and run runtime tests with interpreter -# -- 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: - - Android_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 - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - runtimeVariant: monointerpreter - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], 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) +## +## Build the whole product using Mono for Android and run runtime tests with interpreter +## +#- 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: + #- Android_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 + #buildArgs: -s mono+libs -c $(_BuildConfig) + #timeoutInMinutes: 240 + #runtimeVariant: monointerpreter + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], 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) -# -# 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 - platforms: - - Android_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 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # don't run tests on PRs until we can get significantly more devices - ${{ if eq(variables['isFullMatrix'], 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) +## +## 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 + #platforms: + #- Android_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 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], true)) + ## don't run tests on PRs until we can get significantly more devices + #${{ if eq(variables['isFullMatrix'], 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) -# Run disabled installer tests on Linux x64 -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - Linux_x64 - jobParameters: - nameSuffix: Installer_Tests - isOfficialBuild: ${{ variables.isOfficialBuild }} - buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true - useContinueOnErrorDuringBuild: true - enablePublisTestResults: true - testResultsFormat: xunit - timeoutInMinutes: 90 +## Run disabled installer tests on Linux x64 +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/common/global-build-job.yml + #buildConfig: Release + #platforms: + #- Linux_x64 + #jobParameters: + #nameSuffix: Installer_Tests + #isOfficialBuild: ${{ variables.isOfficialBuild }} + #buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true + #useContinueOnErrorDuringBuild: true + #enablePublisTestResults: true + #testResultsFormat: xunit + #timeoutInMinutes: 90 # # Build Browser_wasm, on windows, run console and browser tests @@ -361,29 +361,29 @@ jobs: # # CoreCLR Build for running Apple Silicon libraries-innerloop # -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - ${{ if eq(variables['isFullMatrix'], true) }}: - - OSX_arm64 - jobParameters: - testGroup: innerloop -# -# Libraries Build for running Apple Silicon libraries-innerloop -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - ${{ if eq(variables['isFullMatrix'], true) }}: - - OSX_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - isFullMatrix: ${{ variables['isFullMatrix'] }} - runTests: true - testScope: innerloop - liveRuntimeBuildConfig: release +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + #buildConfig: release + #platforms: + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- OSX_arm64 + #jobParameters: + #testGroup: innerloop +## +## Libraries Build for running Apple Silicon libraries-innerloop +## +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/libraries/build-job.yml + #buildConfig: Release + #platforms: + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- OSX_arm64 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isOfficialBuild: ${{ variables['isOfficialBuild'] }} + #isFullMatrix: ${{ variables['isFullMatrix'] }} + #runTests: true + #testScope: innerloop + #liveRuntimeBuildConfig: release diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2ae339930ef6b..8ee415058269f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -60,207 +60,207 @@ jobs: # 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_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_arm - - Linux_musl_arm64 - - Linux_musl_x64 - - OSX_arm64 - - 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['isFullMatrix'], true)) +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + #buildConfig: checked + #platforms: + #- Linux_x64 + #- Linux_arm + #- Linux_arm64 + #- Linux_musl_arm + #- Linux_musl_arm64 + #- Linux_musl_x64 + #- OSX_arm64 + #- 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['isFullMatrix'], true)) -# -# Build CoreCLR checked using GCC toolchain -# 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_x64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## Build CoreCLR checked using GCC toolchain +## 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_x64 + #jobParameters: + #testGroup: innerloop + #compilerName: gcc + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + #eq(variables['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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 +## +## 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 -# -# Build PGO CoreCLR release -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - windows_x64 - - windows_x86 - - Linux_x64 - jobParameters: - testGroup: innerloop - pgoType: 'PGO' +## +## Build PGO CoreCLR release +## +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + #buildConfig: release + #platforms: + #- windows_x64 + #- windows_x86 + #- Linux_x64 + #jobParameters: + #testGroup: innerloop + #pgoType: 'PGO' -# -# Build CoreCLR Formatting Job -# Only when CoreCLR is changed, and only in the 'main' branch (no release branches; -# both CI 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.containsChange'], true), - eq(variables['isFullMatrix'], true))) +## +## Build CoreCLR Formatting Job +## Only when CoreCLR is changed, and only in the 'main' branch (no release branches; +## both CI 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.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 - condition: >- - or( - 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 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + #eq(variables['isFullMatrix'], 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: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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: + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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: - - MacCatalyst_x64 - - MacCatalyst_arm64 - - tvOSSimulator_x64 - - iOSSimulator_x86 - - iOS_arm64 - - 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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: + #- MacCatalyst_x64 + #- MacCatalyst_arm64 + #- tvOSSimulator_x64 + #- iOSSimulator_x86 + #- iOS_arm64 + #- 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - tvOS_arm64 - - iOS_arm - - 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/common/global-build-job.yml + #buildConfig: Release + #runtimeFlavor: mono + #platforms: + #- tvOS_arm64 + #- iOS_arm + #- 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], true)) # # Build the whole product using Mono and run libraries tests, multi-scenario @@ -429,824 +429,824 @@ jobs: eq(variables['isFullMatrix'], true)) # Build and test libraries under single-file publishing -- 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_x64 - - Linux_x64 - jobParameters: - testGroup: innerloop - isFullMatrix: ${{ variables.isFullMatrix }} - isSingleFile: true - nameSuffix: SingleFile - buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true - timeoutInMinutes: 120 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) +#- 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_x64 + #- Linux_x64 + #jobParameters: + #testGroup: innerloop + #isFullMatrix: ${{ variables.isFullMatrix }} + #isSingleFile: true + #nameSuffix: SingleFile + #buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true + #timeoutInMinutes: 120 + ## extra steps, run tests + #extraStepsTemplate: /eng/pipelines/libraries/helix.yml + #extraStepsParameters: + #creator: dotnet-bot + #testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) # # 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: - - Browser_wasm - 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: 10 - - name: timeoutPerTestCollectionInMinutes - value: 200 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) +#- 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: + #- Browser_wasm + #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: 10 + #- name: timeoutPerTestCollectionInMinutes + #value: 200 + #jobParameters: + #testGroup: innerloop + #nameSuffix: AllSubsets_Mono_RuntimeTests + #buildArgs: -s mono+libs -c $(_BuildConfig) + #timeoutInMinutes: 180 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], true)) + ## extra steps, run tests + #extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml + #extraStepsParameters: + #creator: dotnet-bot + #testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # Build the whole product using Mono for Android and run runtime tests with Android emulator # -- 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: - - Android_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 - 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.containsChange'], true), - eq(variables['isFullMatrix'], 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) +#- 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: + #- Android_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 + #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.containsChange'], true), + #eq(variables['isFullMatrix'], 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) -# -# 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# Build Mono debug -# 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: 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_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## Build Mono debug +## 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: 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_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +#- 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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + #eq(variables['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(variables['isFullMatrix'], true)) +#- 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.containsChange'], true), + #eq(variables['isFullMatrix'], 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.containsChange'], true), - eq(variables['isFullMatrix'], 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.containsChange'], true), + #eq(variables['isFullMatrix'], 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: - liveRuntimeBuildConfig: release +## +## 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.containsChange'], true), + #eq(variables['isFullMatrix'], 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 - testBuildPlatforms: - - Linux_x64 - - windows_x64 - - OSX_x64 - liveRuntimeBuildConfig: release +## +## 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: + #liveRuntimeBuildConfig: release -# -# Libraries Build that only run when libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - ${{ if eq(variables['isFullMatrix'], false) }}: - - windows_x86 - jobParameters: - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], 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 + #testBuildPlatforms: + #- Linux_x64 + #- windows_x64 + #- OSX_x64 + #liveRuntimeBuildConfig: release -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - windows_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## Libraries Build that only run when libraries is changed +## +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/libraries/build-job.yml + #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #platforms: + #- ${{ if eq(variables['isFullMatrix'], false) }}: + #- windows_x86 + #jobParameters: + #liveRuntimeBuildConfig: release + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/libraries/build-job.yml + #buildConfig: Release + #platforms: + #- windows_x86 + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- windows_x64 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isFullMatrix: ${{ variables.isFullMatrix }} + #framework: net48 + #runTests: true + #testScope: innerloop + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], 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/installer/installer-matrix.yml - parameters: - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 - - windows_x86 - - windows_arm - - windows_arm64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/libraries/build-job.yml + #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #platforms: + #- windows_x64 + #jobParameters: + #isFullMatrix: ${{ variables.isFullMatrix }} + #framework: allConfigurations + #runTests: true + #useHelix: false + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: Release - platforms: - - OSX_arm64 - - OSX_x64 - - Linux_x64 - - Linux_arm64 - - Linux_musl_x64 - - windows_x64 - - FreeBSD_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +## +## 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/installer/installer-matrix.yml + #parameters: + #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #platforms: + #- Linux_arm + #- Linux_musl_arm + #- Linux_musl_arm64 + #- windows_x86 + #- windows_arm + #- windows_arm64 + #jobParameters: + #liveRuntimeBuildConfig: release + #liveLibrariesBuildConfig: Release -# -# PGO Build -# -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: Release - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - pgoType: 'PGO' - platforms: - - windows_x64 - - windows_x86 - - Linux_x64 +#- template: /eng/pipelines/installer/installer-matrix.yml + #parameters: + #buildConfig: Release + #platforms: + #- OSX_arm64 + #- OSX_x64 + #- Linux_x64 + #- Linux_arm64 + #- Linux_musl_x64 + #- windows_x64 + #- FreeBSD_x64 + #jobParameters: + #liveRuntimeBuildConfig: release + #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# -# 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 - 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['isFullMatrix'], true)) +## +## PGO Build +## +#- template: /eng/pipelines/installer/installer-matrix.yml + #parameters: + #buildConfig: Release + #jobParameters: + #isOfficialBuild: ${{ variables.isOfficialBuild }} + #liveRuntimeBuildConfig: release + #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #pgoType: 'PGO' + #platforms: + #- windows_x64 + #- windows_x86 + #- Linux_x64 -# -# 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['isFullMatrix'], 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 + #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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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 - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -# -# Mono CoreCLR runtime Test executions using live libraries in jit mode -# Only when Mono is changed -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - OSX_x64 - - Linux_arm64 - 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.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], 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 + #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #liveRuntimeBuildConfig: release + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# 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/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - OSX_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: monointerpreter - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) -# -# 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/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## Mono CoreCLR runtime Test executions using live libraries in jit mode +## Only when Mono is changed +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + #buildConfig: release + #runtimeFlavor: mono + #platforms: + #- OSX_x64 + #- Linux_arm64 + #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.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# 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 - isFullMatrix: ${{ variables.isFullMatrix }} - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## 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/templates/runtimes/run-test-job.yml + #buildConfig: release + #runtimeFlavor: mono + #platforms: + #- OSX_x64 + #- Linux_arm64 + #helixQueueGroup: pr + #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + #jobParameters: + #testGroup: innerloop + #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #liveRuntimeBuildConfig: release + #runtimeVariant: monointerpreter + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(variables['isFullMatrix'], true)) +## +## 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/templates/runtimes/run-test-job.yml + #buildConfig: release + #runtimeFlavor: mono + #platforms: + #- Linux_x64 + #- Linux_arm64 + #helixQueueGroup: pr + #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + #jobParameters: + #testGroup: innerloop + #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + #liveRuntimeBuildConfig: release + #runtimeVariant: llvmaot + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + #eq(variables['isFullMatrix'], 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 +## +## 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_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) + #- Linux_arm64 + #- Linux_x64 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isOfficialBuild: false + #isFullMatrix: ${{ variables.isFullMatrix }} + #runtimeDisplayName: mono + #testScope: innerloop + #liveRuntimeBuildConfig: release + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], 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 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - windows_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], 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 + #isFullMatrix: ${{ variables.isFullMatrix }} + #interpreter: true + #runtimeDisplayName: mono_interpreter + #testScope: innerloop + #liveRuntimeBuildConfig: release + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + #eq(variables['isFullMatrix'], 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 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Linux_arm64 - - ${{ if eq(variables['isFullMatrix'], false) }}: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], 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 + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- windows_arm64 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isOfficialBuild: false + #isFullMatrix: ${{ variables.isFullMatrix }} + #testScope: innerloop + #liveRuntimeBuildConfig: release + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# 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: Release - platforms: - # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 - - windows_x86 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], 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 + #- ${{ if eq(variables['isFullMatrix'], true) }}: + #- Linux_arm64 + #- ${{ if eq(variables['isFullMatrix'], false) }}: + #- windows_x86 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isOfficialBuild: false + #isFullMatrix: ${{ variables.isFullMatrix }} + #testScope: innerloop + #liveRuntimeBuildConfig: release + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], true)) -# -# 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: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - Linux_x64 - - Linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## 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: Release + #platforms: + ## - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + #- Linux_arm + #- Linux_musl_arm + #- Linux_musl_arm64 + #- windows_x86 + #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + #helixQueueGroup: libraries + #jobParameters: + #testScope: innerloop + #liveRuntimeBuildConfig: checked + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + #eq(variables['isFullMatrix'], 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 - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +## +## 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: ${{ variables.debugOnPrReleaseOnRolling }} + #platforms: + #- windows_x64 + #- Linux_x64 + #- Linux_musl_x64 + #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + #helixQueueGroup: libraries + #jobParameters: + #testScope: innerloop + #liveRuntimeBuildConfig: checked + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + #eq(variables['isFullMatrix'], 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 + #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + #dependsOnTestArchitecture: x64 + #condition: >- + #or( + #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + #eq(variables['isFullMatrix'], true)) From ad915e253cd70666929dc0e59d657aa3225ee5ad Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 3 Aug 2021 18:03:44 -0400 Subject: [PATCH 6/7] Revert "Disable unrelated builds for now" This reverts commit 6fa0efe2ffcfdbcfaba3bdf519a7717809c22672. --- eng/pipelines/runtime-staging.yml | 550 ++++---- eng/pipelines/runtime.yml | 1930 ++++++++++++++--------------- 2 files changed, 1240 insertions(+), 1240 deletions(-) diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index a4e918e1ea508..27843c8959dd4 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -58,262 +58,262 @@ jobs: # iOS/tvOS/Catalyst 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 - #- iOSSimulator_x64 - #- tvOSSimulator_x64 - ## don't run tests on arm64 PRs until we can get significantly more devices - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- MacCatalyst_arm64 - #- iOSSimulator_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.containsChange'] ] - #jobParameters: - #testGroup: innerloop - #nameSuffix: AllSubsets_Mono - #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], true)) - ## extra steps, run tests - #extraStepsTemplate: /eng/pipelines/libraries/helix.yml - #extraStepsParameters: - #creator: dotnet-bot - #interpreter: true - #testRunNamePrefixSuffix: Mono_$(_BuildConfig) - #condition: >- - #or( - #eq(variables['librariesContainsChange'], true), - #eq(variables['monoContainsChange'], true), - #eq(variables['isFullMatrix'], true)) +- 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 + - iOSSimulator_x64 + - tvOSSimulator_x64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isFullMatrix'], true) }}: + - MacCatalyst_arm64 + - iOSSimulator_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.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + interpreter: true + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## 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: - #- Android_x86 - #- Android_x64 - #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.containsChange'] ] - #jobParameters: - #testGroup: innerloop - #nameSuffix: AllSubsets_Mono - #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - #timeoutInMinutes: 180 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) +# +# 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: + - Android_x86 + - Android_x64 + 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.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -#- 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: - #- Android_arm - #- Android_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.containsChange'] ] - #jobParameters: - #testGroup: innerloop - #nameSuffix: AllSubsets_Mono - #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - #timeoutInMinutes: 180 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- 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: + - Android_arm + - Android_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.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) - ## don't run tests on PRs until we can get significantly more devices - #${{ if eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) + # don't run tests on PRs until we can get significantly more devices + ${{ if eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -## -## 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: - #- Windows_x64 - #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.containsChange'] ] - #jobParameters: - #testScope: innerloop - #nameSuffix: AllSubsets_Mono - #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - #timeoutInMinutes: 120 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) +# +# 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: + - Windows_x64 + 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.containsChange'] ] + jobParameters: + testScope: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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['isFullMatrix'], true)) -## -## Build the whole product using Mono for Android and run runtime tests with interpreter -## -#- 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: - #- Android_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 - #buildArgs: -s mono+libs -c $(_BuildConfig) - #timeoutInMinutes: 240 - #runtimeVariant: monointerpreter - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], 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) +# +# Build the whole product using Mono for Android and run runtime tests with interpreter +# +- 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: + - Android_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 + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + runtimeVariant: monointerpreter + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], 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) -## -## 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 - #platforms: - #- Android_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 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], true)) - ## don't run tests on PRs until we can get significantly more devices - #${{ if eq(variables['isFullMatrix'], 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) +# +# 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 + platforms: + - Android_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 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # don't run tests on PRs until we can get significantly more devices + ${{ if eq(variables['isFullMatrix'], 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) -## Run disabled installer tests on Linux x64 -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/common/global-build-job.yml - #buildConfig: Release - #platforms: - #- Linux_x64 - #jobParameters: - #nameSuffix: Installer_Tests - #isOfficialBuild: ${{ variables.isOfficialBuild }} - #buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true - #useContinueOnErrorDuringBuild: true - #enablePublisTestResults: true - #testResultsFormat: xunit - #timeoutInMinutes: 90 +# Run disabled installer tests on Linux x64 +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - Linux_x64 + jobParameters: + nameSuffix: Installer_Tests + isOfficialBuild: ${{ variables.isOfficialBuild }} + buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true + useContinueOnErrorDuringBuild: true + enablePublisTestResults: true + testResultsFormat: xunit + timeoutInMinutes: 90 # # Build Browser_wasm, on windows, run console and browser tests @@ -361,29 +361,29 @@ jobs: # # CoreCLR Build for running Apple Silicon libraries-innerloop # -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - #buildConfig: release - #platforms: - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- OSX_arm64 - #jobParameters: - #testGroup: innerloop -## -## Libraries Build for running Apple Silicon libraries-innerloop -## -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/libraries/build-job.yml - #buildConfig: Release - #platforms: - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- OSX_arm64 - #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - #jobParameters: - #isOfficialBuild: ${{ variables['isOfficialBuild'] }} - #isFullMatrix: ${{ variables['isFullMatrix'] }} - #runTests: true - #testScope: innerloop - #liveRuntimeBuildConfig: release +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - ${{ if eq(variables['isFullMatrix'], true) }}: + - OSX_arm64 + jobParameters: + testGroup: innerloop +# +# Libraries Build for running Apple Silicon libraries-innerloop +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - ${{ if eq(variables['isFullMatrix'], true) }}: + - OSX_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: ${{ variables['isOfficialBuild'] }} + isFullMatrix: ${{ variables['isFullMatrix'] }} + runTests: true + testScope: innerloop + liveRuntimeBuildConfig: release diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8ee415058269f..2ae339930ef6b 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -60,207 +60,207 @@ jobs: # 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_x64 - #- Linux_arm - #- Linux_arm64 - #- Linux_musl_arm - #- Linux_musl_arm64 - #- Linux_musl_x64 - #- OSX_arm64 - #- 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['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_arm + - Linux_musl_arm64 + - Linux_musl_x64 + - OSX_arm64 + - 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['isFullMatrix'], true)) -## -## Build CoreCLR checked using GCC toolchain -## 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_x64 - #jobParameters: - #testGroup: innerloop - #compilerName: gcc - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# Build CoreCLR checked using GCC toolchain +# 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_x64 + jobParameters: + testGroup: innerloop + compilerName: gcc + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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 +# +# 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 -## -## Build PGO CoreCLR release -## -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - #buildConfig: release - #platforms: - #- windows_x64 - #- windows_x86 - #- Linux_x64 - #jobParameters: - #testGroup: innerloop - #pgoType: 'PGO' +# +# Build PGO CoreCLR release +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - windows_x64 + - windows_x86 + - Linux_x64 + jobParameters: + testGroup: innerloop + pgoType: 'PGO' -## -## Build CoreCLR Formatting Job -## Only when CoreCLR is changed, and only in the 'main' branch (no release branches; -## both CI 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.containsChange'], true), - #eq(variables['isFullMatrix'], true))) +# +# Build CoreCLR Formatting Job +# Only when CoreCLR is changed, and only in the 'main' branch (no release branches; +# both CI 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.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 - #condition: >- - #or( - #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 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], 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: - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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: - #- MacCatalyst_x64 - #- MacCatalyst_arm64 - #- tvOSSimulator_x64 - #- iOSSimulator_x86 - #- iOS_arm64 - #- 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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: + - MacCatalyst_x64 + - MacCatalyst_arm64 + - tvOSSimulator_x64 + - iOSSimulator_x86 + - iOS_arm64 + - 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/common/global-build-job.yml - #buildConfig: Release - #runtimeFlavor: mono - #platforms: - #- tvOS_arm64 - #- iOS_arm - #- 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - tvOS_arm64 + - iOS_arm + - 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) # # Build the whole product using Mono and run libraries tests, multi-scenario @@ -429,824 +429,824 @@ jobs: eq(variables['isFullMatrix'], true)) # Build and test libraries under single-file publishing -#- 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_x64 - #- Linux_x64 - #jobParameters: - #testGroup: innerloop - #isFullMatrix: ${{ variables.isFullMatrix }} - #isSingleFile: true - #nameSuffix: SingleFile - #buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true - #timeoutInMinutes: 120 - ## extra steps, run tests - #extraStepsTemplate: /eng/pipelines/libraries/helix.yml - #extraStepsParameters: - #creator: dotnet-bot - #testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) +- 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_x64 + - Linux_x64 + jobParameters: + testGroup: innerloop + isFullMatrix: ${{ variables.isFullMatrix }} + isSingleFile: true + nameSuffix: SingleFile + buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true + timeoutInMinutes: 120 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) # # 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: - #- Browser_wasm - #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: 10 - #- name: timeoutPerTestCollectionInMinutes - #value: 200 - #jobParameters: - #testGroup: innerloop - #nameSuffix: AllSubsets_Mono_RuntimeTests - #buildArgs: -s mono+libs -c $(_BuildConfig) - #timeoutInMinutes: 180 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], true)) - ## extra steps, run tests - #extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml - #extraStepsParameters: - #creator: dotnet-bot - #testRunNamePrefixSuffix: Mono_$(_BuildConfig) +- 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: + - Browser_wasm + 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: 10 + - name: timeoutPerTestCollectionInMinutes + value: 200 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # Build the whole product using Mono for Android and run runtime tests with Android emulator # -#- 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: - #- Android_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 - #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.containsChange'], true), - #eq(variables['isFullMatrix'], 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) +- 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: + - Android_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 + 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.containsChange'], true), + eq(variables['isFullMatrix'], 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) -## -## 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## Build Mono debug -## 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: 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_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# Build Mono debug +# 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: 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_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- 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.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(variables['isFullMatrix'], 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.containsChange'], true), + eq(variables['isFullMatrix'], 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.containsChange'], true), - #eq(variables['isFullMatrix'], 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: + liveRuntimeBuildConfig: release -## -## 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: - #liveRuntimeBuildConfig: release +- 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 + testBuildPlatforms: + - Linux_x64 + - windows_x64 + - OSX_x64 + liveRuntimeBuildConfig: release -#- 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 - #testBuildPlatforms: - #- Linux_x64 - #- windows_x64 - #- OSX_x64 - #liveRuntimeBuildConfig: release +# +# Libraries Build that only run when libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - ${{ if eq(variables['isFullMatrix'], false) }}: + - windows_x86 + jobParameters: + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## Libraries Build that only run when libraries is changed -## -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/libraries/build-job.yml - #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #platforms: - #- ${{ if eq(variables['isFullMatrix'], false) }}: - #- windows_x86 - #jobParameters: - #liveRuntimeBuildConfig: release - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - windows_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/libraries/build-job.yml - #buildConfig: Release - #platforms: - #- windows_x86 - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- windows_x64 - #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - #jobParameters: - #isFullMatrix: ${{ variables.isFullMatrix }} - #framework: net48 - #runTests: true - #testScope: innerloop - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: allConfigurations + runTests: true + useHelix: false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/libraries/build-job.yml - #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #platforms: - #- windows_x64 - #jobParameters: - #isFullMatrix: ${{ variables.isFullMatrix }} - #framework: allConfigurations - #runTests: true - #useHelix: false - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], 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/installer/installer-matrix.yml + parameters: + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm + - Linux_musl_arm + - Linux_musl_arm64 + - windows_x86 + - windows_arm + - windows_arm64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release -## -## 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/installer/installer-matrix.yml - #parameters: - #buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #platforms: - #- Linux_arm - #- Linux_musl_arm - #- Linux_musl_arm64 - #- windows_x86 - #- windows_arm - #- windows_arm64 - #jobParameters: - #liveRuntimeBuildConfig: release - #liveLibrariesBuildConfig: Release +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: Release + platforms: + - OSX_arm64 + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Linux_musl_x64 + - windows_x64 + - FreeBSD_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -#- template: /eng/pipelines/installer/installer-matrix.yml - #parameters: - #buildConfig: Release - #platforms: - #- OSX_arm64 - #- OSX_x64 - #- Linux_x64 - #- Linux_arm64 - #- Linux_musl_x64 - #- windows_x64 - #- FreeBSD_x64 - #jobParameters: - #liveRuntimeBuildConfig: release - #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# +# PGO Build +# +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: Release + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + pgoType: 'PGO' + platforms: + - windows_x64 + - windows_x86 + - Linux_x64 -## -## PGO Build -## -#- template: /eng/pipelines/installer/installer-matrix.yml - #parameters: - #buildConfig: Release - #jobParameters: - #isOfficialBuild: ${{ variables.isOfficialBuild }} - #liveRuntimeBuildConfig: release - #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #pgoType: 'PGO' - #platforms: - #- windows_x64 - #- windows_x86 - #- Linux_x64 +# +# 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 + 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['isFullMatrix'], 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 - #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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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['isFullMatrix'], 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 + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], 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 - #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #liveRuntimeBuildConfig: release - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# Mono CoreCLR runtime Test executions using live libraries in jit mode +# Only when Mono is changed +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + - Linux_arm64 + 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.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## Mono CoreCLR runtime Test executions using live libraries in jit mode -## Only when Mono is changed -#- template: /eng/pipelines/common/platform-matrix.yml - #parameters: - #jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - #buildConfig: release - #runtimeFlavor: mono - #platforms: - #- OSX_x64 - #- Linux_arm64 - #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.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# 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/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: monointerpreter + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) +# +# 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/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## 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/templates/runtimes/run-test-job.yml - #buildConfig: release - #runtimeFlavor: mono - #platforms: - #- OSX_x64 - #- Linux_arm64 - #helixQueueGroup: pr - #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - #jobParameters: - #testGroup: innerloop - #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #liveRuntimeBuildConfig: release - #runtimeVariant: monointerpreter - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(variables['isFullMatrix'], true)) -## -## 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/templates/runtimes/run-test-job.yml - #buildConfig: release - #runtimeFlavor: mono - #platforms: - #- Linux_x64 - #- Linux_arm64 - #helixQueueGroup: pr - #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - #jobParameters: - #testGroup: innerloop - #liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - #liveRuntimeBuildConfig: release - #runtimeVariant: llvmaot - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# 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 + isFullMatrix: ${{ variables.isFullMatrix }} + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## 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 +# +# 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_arm64 - #- Linux_x64 - #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - #jobParameters: - #isOfficialBuild: false - #isFullMatrix: ${{ variables.isFullMatrix }} - #runtimeDisplayName: mono - #testScope: innerloop - #liveRuntimeBuildConfig: release - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], 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 - #isFullMatrix: ${{ variables.isFullMatrix }} - #interpreter: true - #runtimeDisplayName: mono_interpreter - #testScope: innerloop - #liveRuntimeBuildConfig: release - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - #eq(variables['isFullMatrix'], true)) + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], 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 - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- windows_arm64 - #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - #jobParameters: - #isOfficialBuild: false - #isFullMatrix: ${{ variables.isFullMatrix }} - #testScope: innerloop - #liveRuntimeBuildConfig: release - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], 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 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - windows_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], 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 - #- ${{ if eq(variables['isFullMatrix'], true) }}: - #- Linux_arm64 - #- ${{ if eq(variables['isFullMatrix'], false) }}: - #- windows_x86 - #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - #jobParameters: - #isOfficialBuild: false - #isFullMatrix: ${{ variables.isFullMatrix }} - #testScope: innerloop - #liveRuntimeBuildConfig: release - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], 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 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Linux_arm64 + - ${{ if eq(variables['isFullMatrix'], false) }}: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## 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: Release - #platforms: - ## - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - #- Linux_arm - #- Linux_musl_arm - #- Linux_musl_arm64 - #- windows_x86 - #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - #helixQueueGroup: libraries - #jobParameters: - #testScope: innerloop - #liveRuntimeBuildConfig: checked - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# 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: Release + platforms: + # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + - Linux_arm + - Linux_musl_arm + - Linux_musl_arm64 + - windows_x86 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -## -## 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: ${{ variables.debugOnPrReleaseOnRolling }} - #platforms: - #- windows_x64 - #- Linux_x64 - #- Linux_musl_x64 - #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - #helixQueueGroup: libraries - #jobParameters: - #testScope: innerloop - #liveRuntimeBuildConfig: checked - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - #eq(variables['isFullMatrix'], true)) +# +# 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: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - Linux_x64 + - Linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], 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 - #dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - #dependsOnTestArchitecture: x64 - #condition: >- - #or( - #eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - #eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - #eq(variables['isFullMatrix'], 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 + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) From 68172a3ec113efdfc5763077836c466867e3bd7f Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 4 Aug 2021 12:03:23 -0400 Subject: [PATCH 7/7] Rename OnlyWasmBuildTests -> TestWasmBuildTests --- eng/pipelines/runtime.yml | 2 +- src/libraries/tests.proj | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index f21c7e8a33858..0fca635b79398 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -324,7 +324,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_WasmBuildTests - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:OnlyWasmBuildTests=true /p:TestAssemblies=false + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:TestWasmBuildTests=true /p:TestAssemblies=false timeoutInMinutes: 180 condition: >- or( diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index ebb11e10aa8b6..27270bc6c2bf1 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -337,11 +337,11 @@ AdditionalProperties="%(AdditionalProperties);SkipTrimmingProjectsRestore=true" /> - +
@@ -370,7 +370,7 @@ - +