Skip to content

Commit 0cff4a2

Browse files
authored
Alter amount of tests that run per PR for mono mobile configurations (#60727)
In an effort to better utilize CI resources, this change will only run the System.Runtime library test per PR for Android and Wasm configurations. The full libraries and runtime tests will move to only run on the post-PR validation pipeline. The summary of changes are: - System.Runtime tests will only trigger per PR for Android x86/x64 and Wasm AOT / EAT - All mono runtime builds will only run on the post PR validation build (rolling build) - WasmBuildTests will only run on the post PR validation build (rolling build) - Wasm on Windows will only build Note: iOS/tvOS/MacCatalyst are excluded until #59503 lands
1 parent 7144c2f commit 0cff4a2

File tree

5 files changed

+60
-61
lines changed

5 files changed

+60
-61
lines changed

eng/pipelines/common/xplat-setup.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ jobs:
4747

4848
- name: _BuildConfig
4949
value: $(buildConfigUpper)
50+
51+
- name: _runSmokeTestsOnlyArg
52+
${{ if ne(parameters.variables['isFullMatrix'], true) }}:
53+
value: /p:RunSmokeTestsOnly=true
54+
${{ if eq(parameters.variables['isFullMatrix'], true) }}:
55+
value: ''
5056

5157
- ${{ if or(eq(parameters.osGroup, 'windows'), eq(parameters.hostedOs, 'windows')) }}:
5258
- name: archiveExtension

eng/pipelines/runtime-staging.yml

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ jobs:
212212
jobParameters:
213213
testGroup: innerloop
214214
nameSuffix: AllSubsets_Mono
215-
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
215+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg)
216216
timeoutInMinutes: 180
217217
condition: >-
218218
or(
@@ -249,16 +249,15 @@ jobs:
249249
jobParameters:
250250
testGroup: innerloop
251251
nameSuffix: AllSubsets_Mono
252-
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
252+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg)
253253
timeoutInMinutes: 180
254254
condition: >-
255255
or(
256256
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
257257
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
258258
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
259259
eq(variables['isFullMatrix'], true))
260-
261-
# don't run tests on PRs until we can get significantly more devices
260+
# Device tests are rolling build only
262261
${{ if eq(variables['isFullMatrix'], true) }}:
263262
# extra steps, run tests
264263
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
@@ -320,7 +319,7 @@ jobs:
320319
buildConfig: Release
321320
runtimeFlavor: mono
322321
platforms:
323-
- Android_x64
322+
- Android_x64
324323
variables:
325324
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
326325
- name: _HelixSource
@@ -343,11 +342,13 @@ jobs:
343342
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
344343
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
345344
eq(variables['isFullMatrix'], true))
346-
# extra steps, run tests
347-
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
348-
extraStepsParameters:
349-
creator: dotnet-bot
350-
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
345+
# NOTE: Per PR test execution is not recommended for runtime tests
346+
${{ if eq(variables['isFullMatrix'], true) }}:
347+
# extra steps, run tests
348+
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
349+
extraStepsParameters:
350+
creator: dotnet-bot
351+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
351352

352353
#
353354
# Build the whole product using Mono and run runtime tests with the JIT.
@@ -359,7 +360,7 @@ jobs:
359360
buildConfig: Release
360361
runtimeFlavor: mono
361362
platforms:
362-
- iOSSimulator_x64
363+
- iOSSimulator_x64
363364
variables:
364365
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
365366
- name: _HelixSource
@@ -398,7 +399,7 @@ jobs:
398399
buildConfig: Release
399400
runtimeFlavor: mono
400401
platforms:
401-
- Android_arm64
402+
- Android_arm64
402403
variables:
403404
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
404405
- name: _HelixSource
@@ -457,20 +458,21 @@ jobs:
457458
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
458459
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
459460
eq(variables['isFullMatrix'], true))
460-
# extra steps, run tests
461-
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
462-
extraStepsParameters:
463-
creator: dotnet-bot
464-
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
465-
extraHelixArguments: /p:BrowserHost=windows
466-
scenarios:
467-
- normal
468-
- wasmtestonbrowser
469-
condition: >-
470-
or(
471-
eq(variables['librariesContainsChange'], true),
472-
eq(variables['monoContainsChange'], true),
473-
eq(variables['isFullMatrix'], true))
461+
${{ if eq(variables['isFullMatrix'], true) }}:
462+
# extra steps, run tests
463+
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
464+
extraStepsParameters:
465+
creator: dotnet-bot
466+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
467+
extraHelixArguments: /p:BrowserHost=windows
468+
scenarios:
469+
- normal
470+
- wasmtestonbrowser
471+
condition: >-
472+
or(
473+
eq(variables['librariesContainsChange'], true),
474+
eq(variables['monoContainsChange'], true),
475+
eq(variables['isFullMatrix'], true))
474476
475477
#
476478
# CoreCLR Build for running Apple Silicon libraries-innerloop

eng/pipelines/runtime.yml

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ jobs:
292292
jobParameters:
293293
testGroup: innerloop
294294
nameSuffix: AllSubsets_Mono
295-
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
295+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg)
296296
timeoutInMinutes: 180
297297
condition: >-
298298
or(
@@ -305,6 +305,7 @@ jobs:
305305
extraStepsParameters:
306306
creator: dotnet-bot
307307
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
308+
extraHelixArguments: $(_runSmokeTestsOnlyArg)
308309
scenarios:
309310
- normal
310311
- wasmtestonbrowser
@@ -324,7 +325,9 @@ jobs:
324325
buildConfig: Release
325326
runtimeFlavor: mono
326327
platforms:
327-
- Browser_wasm
328+
# BuildWasmApps should only happen on the rolling build. No need to duplicate the build on PR's
329+
- ${{ if eq(variables['isFullMatrix'], true) }}:
330+
- Browser_wasm
328331
variables:
329332
# map dependencies variables to local variables
330333
- name: monoContainsChange
@@ -374,7 +377,7 @@ jobs:
374377
jobParameters:
375378
testGroup: innerloop
376379
nameSuffix: AllSubsets_Mono_EAT
377-
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false
380+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false
378381
timeoutInMinutes: 180
379382
condition: >-
380383
or(
@@ -387,7 +390,7 @@ jobs:
387390
extraStepsParameters:
388391
creator: dotnet-bot
389392
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
390-
extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
393+
extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg)
391394
scenarios:
392395
- normal
393396
condition: >-
@@ -416,7 +419,7 @@ jobs:
416419
jobParameters:
417420
testGroup: innerloop
418421
nameSuffix: AllSubsets_Mono_AOT
419-
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true
422+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true
420423
timeoutInMinutes: 180
421424
condition: >-
422425
or(
@@ -429,7 +432,7 @@ jobs:
429432
extraStepsParameters:
430433
creator: dotnet-bot
431434
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
432-
extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
435+
extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg)
433436
scenarios:
434437
- normal
435438
condition: >-
@@ -488,10 +491,8 @@ jobs:
488491
buildArgs: -s mono+libs -c $(_BuildConfig)
489492
timeoutInMinutes: 180
490493
condition: >-
491-
or(
492-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
493-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
494-
eq(variables['isFullMatrix'], true))
494+
eq(variables['isFullMatrix'], true)
495+
# NOTE: Per PR test execution is not recommended for mobile runtime tests
495496
# extra steps, run tests
496497
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
497498
extraStepsParameters:
@@ -526,10 +527,8 @@ jobs:
526527
buildArgs: -s mono+libs -c $(_BuildConfig)
527528
timeoutInMinutes: 240
528529
condition: >-
529-
or(
530-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
531-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
532-
eq(variables['isFullMatrix'], true))
530+
eq(variables['isFullMatrix'], true)
531+
# NOTE: Per PR test execution is not recommended for mobile runtime tests
533532
# extra steps, run tests
534533
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
535534
extraStepsParameters:
@@ -1042,10 +1041,7 @@ jobs:
10421041
liveRuntimeBuildConfig: release
10431042
runtimeVariant: minijit
10441043
condition: >-
1045-
or(
1046-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
1047-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
1048-
eq(variables['isFullMatrix'], true))
1044+
eq(variables['isFullMatrix'], true)
10491045
10501046
#
10511047
# Mono CoreCLR runtime Test executions using live libraries in interpreter mode
@@ -1066,10 +1062,7 @@ jobs:
10661062
liveRuntimeBuildConfig: release
10671063
runtimeVariant: monointerpreter
10681064
condition: >-
1069-
or(
1070-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
1071-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
1072-
eq(variables['isFullMatrix'], true))
1065+
eq(variables['isFullMatrix'], true)
10731066
#
10741067
# Mono CoreCLR runtime Test executions using live libraries and LLVM AOT
10751068
# Only when Mono is changed
@@ -1091,10 +1084,7 @@ jobs:
10911084
liveRuntimeBuildConfig: release
10921085
runtimeVariant: llvmaot
10931086
condition: >-
1094-
or(
1095-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
1096-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
1097-
eq(variables['isFullMatrix'], true))
1087+
eq(variables['isFullMatrix'], true)
10981088
10991089
#
11001090
# Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
@@ -1117,10 +1107,7 @@ jobs:
11171107
liveRuntimeBuildConfig: release
11181108
runtimeVariant: llvmfullaot
11191109
condition: >-
1120-
or(
1121-
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
1122-
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
1123-
eq(variables['isFullMatrix'], true))
1110+
eq(variables['isFullMatrix'], true)
11241111
11251112
#
11261113
# Libraries Release Test Execution against a release mono runtime.
@@ -1288,4 +1275,4 @@ jobs:
12881275
or(
12891276
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
12901277
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
1291-
eq(variables['isFullMatrix'], true))
1278+
eq(variables['isFullMatrix'], true))

src/libraries/sendtohelixhelp.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@
392392
<HelixCorrelationPayload Include="$(MonoTargetsTasksDir)" Destination="build/MonoTargetsTasks" />
393393
</ItemGroup>
394394

395-
<ItemGroup Condition="'$(TargetOS)' == 'Browser' and '$(Scenario)' != 'BuildWasmApps'">
395+
<ItemGroup Condition="'$(TargetOS)' == 'Browser' and '$(RunSmokeTestsOnly)' != 'true' and '$(Scenario)' != 'BuildWasmApps'">
396396
<HelixCorrelationPayload Include="$(TestEchoMiddleware)" Destination="xharness/TestEchoMiddleware" />
397397
<HelixCorrelationPayload Include="$(RemoteLoopMiddleware)" Destination="xharness/RemoteLoopMiddleware" />
398398
</ItemGroup>

src/libraries/tests.proj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,11 @@
292292
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.IO.IsolatedStorage\tests\System.IO.IsolatedStorage.Tests.csproj" />
293293
</ItemGroup>
294294

295-
<ItemGroup>
295+
<ItemGroup Condition="'$(RunSmokeTestsOnly)' == 'true'">
296+
<ProjectReference Include="$(MSBuildThisFileDirectory)System.Runtime\tests\System.Runtime.Tests.csproj" />
297+
</ItemGroup>
298+
299+
<ItemGroup Condition="'$(RunSmokeTestsOnly)' != 'true'">
296300
<ProjectReference Include="$(MSBuildThisFileDirectory)*\tests\**\*.Tests.csproj"
297301
Exclude="@(ProjectExclusions)"
298302
Condition="'$(TestAssemblies)' == 'true'" />
@@ -351,7 +355,7 @@
351355
BuildInParallel="false" />
352356
</ItemGroup>
353357

354-
<ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(TargetOS)' == 'Android'">
358+
<ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(RunSmokeTestsOnly)' != 'true' and '$(TargetOS)' == 'Android'">
355359
<ProjectReference Include="$(MonoProjectRoot)sample\Android\AndroidSampleApp.csproj"
356360
BuildInParallel="false" />
357361
<ProjectReference Include="$(RepoRoot)\src\tests\FunctionalTests\Android\**\*.Test.csproj"
@@ -360,7 +364,7 @@
360364
</ItemGroup>
361365

362366
<!-- Don't build samples, and functional tests on EAT, AOT, and WBT lanes -->
363-
<ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(TargetOS)' == 'Browser' and '$(BuildAOTTestsOnHelix)' != 'true' and '$(TestWasmBuildTests)' != 'true'">
367+
<ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(RunSmokeTestsOnly)' != 'true' and '$(TargetOS)' == 'Browser' and '$(BuildAOTTestsOnHelix)' != 'true' and '$(TestWasmBuildTests)' != 'true'">
364368
<ProjectReference Include="$(MonoProjectRoot)sample\wasm\**\*.Sample.csproj"
365369
Exclude="@(ProjectExclusions)"
366370
BuildInParallel="true" />

0 commit comments

Comments
 (0)