From a9e917ad61c03567bf4ca169ede49916b8f2d441 Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Wed, 15 Jul 2026 18:33:19 +0200 Subject: [PATCH] Run Wasm.Build.Tests Helix jobs in parallel (#118938) WBT (buildwasmapps) fans out sendtohelix.proj into several sendtohelixhelp.proj invocations (Workloads/Webcil/Fingerprinting/Bundler combos). sendtohelix.proj already invokes them with BuildInParallel=true, but the Send to Helix msbuild call passed no /maxcpucount, so it ran on a single node and each Helix job was sent then waited to completion before the next was sent. Pass /maxcpucount:8 (as libraries-jitstress.yml already does) so the per-combo Helix jobs are sent and awaited concurrently within the existing Build stage. --- .../common/templates/browser-wasm-build-tests.yml | 7 ++++++- .../common/templates/browser-wasm-coreclr-build-tests.yml | 7 ++++++- eng/pipelines/common/templates/simple-wasm-build-tests.yml | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/common/templates/browser-wasm-build-tests.yml b/eng/pipelines/common/templates/browser-wasm-build-tests.yml index 39fca50137411f..224f2887801083 100644 --- a/eng/pipelines/common/templates/browser-wasm-build-tests.yml +++ b/eng/pipelines/common/templates/browser-wasm-build-tests.yml @@ -125,6 +125,11 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig)_$(_hostedOs) - extraHelixArguments: /p:BrowserHost=$(_hostedOs) + # WBT (buildwasmapps) fans out into several sendtohelixhelp.proj invocations + # (Workloads/Webcil/Fingerprinting/Bundler combos). sendtohelix.proj already builds + # them with BuildInParallel=true, but that only parallelizes when the msbuild running + # it has multiple nodes. /maxcpucount lets the Helix jobs be sent (and waited on) + # concurrently instead of one-send-then-wait-for-completion serially (see issue #118938). + extraHelixArguments: /p:BrowserHost=$(_hostedOs) /maxcpucount:8 scenarios: - buildwasmapps diff --git a/eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml b/eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml index ac76b6332c3801..635d669e05af92 100644 --- a/eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml +++ b/eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml @@ -138,6 +138,11 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig)_$(_hostedOs) - extraHelixArguments: /p:BrowserHost=$(_hostedOs) + # WBT (buildwasmapps) fans out into several sendtohelixhelp.proj invocations + # (Workloads/Webcil/Fingerprinting/Bundler combos). sendtohelix.proj already builds + # them with BuildInParallel=true, but that only parallelizes when the msbuild running + # it has multiple nodes. /maxcpucount lets the Helix jobs be sent (and waited on) + # concurrently instead of one-send-then-wait-for-completion serially (see issue #118938). + extraHelixArguments: /p:BrowserHost=$(_hostedOs) /maxcpucount:8 scenarios: - buildwasmapps diff --git a/eng/pipelines/common/templates/simple-wasm-build-tests.yml b/eng/pipelines/common/templates/simple-wasm-build-tests.yml index ec0678f6463e4b..dd7ab4e3e2a99e 100644 --- a/eng/pipelines/common/templates/simple-wasm-build-tests.yml +++ b/eng/pipelines/common/templates/simple-wasm-build-tests.yml @@ -47,7 +47,12 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig)_$(_hostedOs) - extraHelixArguments: /p:BrowserHost=$(_hostedOs) + # WBT (buildwasmapps) fans out into several sendtohelixhelp.proj invocations + # (Workloads/Webcil/Fingerprinting/Bundler combos). sendtohelix.proj already builds + # them with BuildInParallel=true, but that only parallelizes when the msbuild running + # it has multiple nodes. /maxcpucount lets the Helix jobs be sent (and waited on) + # concurrently instead of one-send-then-wait-for-completion serially (see issue #118938). + extraHelixArguments: /p:BrowserHost=$(_hostedOs) /maxcpucount:8 scenarios: - buildwasmapps