From c5807ad41a574e704c1eb5946e20919a4532930f Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 23 Mar 2022 15:12:18 -0400 Subject: [PATCH 1/4] global-build-job.yml: Add hostedOs to the log artifact name, to differentiate between linux, and windows --- eng/pipelines/common/global-build-job.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index fb61bf2d917508..3105bf8fed2ba7 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -113,7 +113,6 @@ jobs: ${{ if ne(parameters.buildingOnSourceBuildImage, true) }}: value: '' - - ${{ each variable in parameters.variables }}: - ${{ variable }} @@ -192,6 +191,9 @@ jobs: inputs: PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/' PublishLocation: Container - ArtifactName: Logs_Build_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }} + ${{ if ne(parameters.osGroup, 'Browser') }}: + ArtifactName: Logs_Build_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }} + ${{ if eq(parameters.osGroup, 'Browser') }}: + ArtifactName: Logs_Build_Browser_wasm_${{ parameters.hostedOs }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }} continueOnError: true condition: always() From 491bba8615ff954454b7169fc8b7f255f1cb7a5c Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 23 Mar 2022 15:13:01 -0400 Subject: [PATCH 2/4] [wasm] Make tests that require lot of resources for AOT .. be selectable via `$(RunHighResourceAOTTestsOnly)`. --- eng/testing/tests.wasm.targets | 4 +++ src/libraries/tests.proj | 47 ++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets index bbdd9c6e44e0e8..0981950df467b3 100644 --- a/eng/testing/tests.wasm.targets +++ b/eng/testing/tests.wasm.targets @@ -5,6 +5,10 @@ true $(BundleTestAppTargets);BundleTestWasmApp true + + + $([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'emsdk')) + true diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 39ff552fb782ff..874015772b3f32 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -18,8 +18,28 @@ true false false + + false + + + true + + + + + + + + + + + + + + @@ -37,15 +57,6 @@ - - - - - - - - @@ -377,11 +388,20 @@ - - + + + + + + + - + @@ -460,8 +480,7 @@ true - - + From c5549cb44423418b7f945b8ca77178ae65897135 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 23 Mar 2022 15:14:50 -0400 Subject: [PATCH 3/4] [wasm] Add new ci jobs to run AOT tests which need lot of resources Some library tests fail to AOT on helix by getting oomkill'ed. Since the build machine have more resources than helix, we can AOT these specific library tests there, and send the built output to helix to run. --- .../templates/wasm-library-aot-tests.yml | 3 ++- .../runtime-extra-platforms-wasm.yml | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/wasm-library-aot-tests.yml b/eng/pipelines/common/templates/wasm-library-aot-tests.yml index 395d84535c0032..982002ce90520b 100644 --- a/eng/pipelines/common/templates/wasm-library-aot-tests.yml +++ b/eng/pipelines/common/templates/wasm-library-aot-tests.yml @@ -3,6 +3,7 @@ parameters: extraBuildArgs: '' extraHelixArgs: '' isExtraPlatformsBuild: false + buildAOTOnHelix: true nameSuffix: '' platforms: [] runAOT: false @@ -18,7 +19,7 @@ jobs: platforms: ${{ parameters.platforms }} nameSuffix: ${{ parameters.nameSuffix }} isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=${{ parameters.runAOT }} ${{ parameters.extraBuildArgs }} + extraBuildArgs: /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=${{ parameters.buildAOTOnHelix }} /p:RunAOTCompilation=${{ parameters.runAOT }} ${{ parameters.extraBuildArgs }} extraHelixArgs: /p:NeedsToBuildWasmAppsOnHelix=true ${{ parameters.extraHelixArgs }} alwaysRun: ${{ parameters.alwaysRun }} runSmokeOnlyArg: $(_runSmokeTestsOnlyArg) diff --git a/eng/pipelines/runtime-extra-platforms-wasm.yml b/eng/pipelines/runtime-extra-platforms-wasm.yml index 9dc8b84d6384ce..c36241d2df7ce2 100644 --- a/eng/pipelines/runtime-extra-platforms-wasm.yml +++ b/eng/pipelines/runtime-extra-platforms-wasm.yml @@ -34,6 +34,18 @@ jobs: runAOT: true alwaysRun: true + # High resource AOT Library tests + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - Browser_wasm + - Browser_wasm_win + nameSuffix: _HighResource_AOT + extraBuildArgs: /p:TestAssemblies=false /p:RunHighAOTResourceRequiringTestsOnly=true + buildAOTOnHelix: false + runAOT: true + alwaysRun: true + # # ********** For !rolling builds, IOW - PR builds ************* # - run everything, if relevant paths changed @@ -72,6 +84,18 @@ jobs: runAOT: true alwaysRun: ${{ parameters.isWasmOnlyBuild }} + # High resource AOT Library tests + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - Browser_wasm + - Browser_wasm_win + nameSuffix: _HighResource_AOT + extraBuildArgs: /p:TestAssemblies=false /p:RunHighAOTResourceRequiringTestsOnly=true + buildAOTOnHelix: false + runAOT: true + alwaysRun: ${{ parameters.isWasmOnlyBuild }} + # Wasm.Build.Tests - template: /eng/pipelines/common/templates/wasm-build-tests.yml parameters: From 2f7ed7839e50072ca2896ceab0bd8df04bf474d5 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 23 Mar 2022 15:28:45 -0400 Subject: [PATCH 4/4] update README.md --- src/mono/wasm/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mono/wasm/README.md b/src/mono/wasm/README.md index 841af5b07303ba..4169da1879304f 100644 --- a/src/mono/wasm/README.md +++ b/src/mono/wasm/README.md @@ -215,11 +215,13 @@ Bumping Emscripten version involves these steps: | libtests | linux: all, only-pc | windows: all, only-pc | linux+windows: all, only-pc | linux+windows: all, always | | libtests eat | linux: smoke, only-pc | - | linux: all, only-pc | linux: all, always | | libtests aot | linux: smoke, only-pc | windows: smoke, only-pc | linux+windows: all, only-pc | linux+windows: all, always | -| | | | | | +| high resource aot | none | none | linux+windows: all, only-pc | linux+windows: all, always | | Wasm.Build.Tests | linux: only-pc | windows: only-pc | linux+windows: only-pc | linux+windows | | Debugger tests | - | linux+windows: only-pc | linux+windows: only-pc | linux+windows | | Runtime tests | linux: only-pc | - | linux: only-pc | linux | +* `high resource aot` runs a few specific library tests with AOT, that require more memory to AOT. + ## Rolling build (twice a day): * `runtime`, and `runtime-staging`, run all the wasm jobs unconditionally, but `EAT`, and `AOT` still run only smoke tests. @@ -232,7 +234,10 @@ Bumping Emscripten version involves these steps: | libtests | linux: all(v8/chr) | windows: all | none | N/A | | libtests eat | linux: smoke | - | linux: all | | | libtests aot | linux: smoke | windows: smoke | linux+windows: all | | +| high resource aot | none | none | linux+windows: all | | | | | | | | | Wasm.Build.Tests | linux: always | windows: always | none | | | Debugger tests | - | linux+windows: always | none | | | Runtime tests | linux: always | - | none | | + +* `high resource aot` runs a few specific library tests with AOT, that require more memory to AOT.