Skip to content

Commit 35da22a

Browse files
committed
Rationalize wasm jobs run on CI
Essentially: - For rolling builds, we want to run all the wasm jobs, unconditionally - And `runtime-extra-platforms` runs the tests that were not in `runtime`, and `runtime-staging` - For PRs, we use the various path checks Changes: - split wasm jobs into various templates - combine, and simplify some jobs * `runtime-extra-platforms`, and `runtime-wasm` run only when manually triggered with a comment - `/azp run <pipeline-name>` * `runtime`, and `runtime-staging`, run jobs only when relevant paths change. And for `EAT`, and `AOT`, only smoke tests are run. * And when `runtime-wasm` is triggered manually, it runs *all* the wasm jobs completely | . | runtime | runtime-staging | runtime-extra-platforms(manual only) | runtime-wasm (manual only) | | ----------------- | -------------------- | --------------- | ------------------------------------ | ------- | | 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 | | | | | | | | 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 | * `runtime`, and `runtime-staging`, run all the wasm jobs unconditionally, but `EAT`, and `AOT` still run only smoke tests. * `runtime-extra-platforms` also runs by default. And it runs only the cases not covered by the above two pipelines. * jobs w/o `only-pc` are always run | . | runtime | runtime-staging | runtime-extra-platforms (always run) | runtime-wasm (manual only) | | ----------------- | ------------- | --------------- | ------------------------------------ | ------ | | libtests | linux: all(v8/chr/node) | windows: all | linux+windows: all with node | N/A | | libtests eat | linux: smoke | - | linux: all | | | libtests aot | linux: smoke | windows: smoke | linux+windows: all | | | | | | | | | Wasm.Build.Tests | linux: always | windows: always | none | | | Debugger tests | - | linux+windows: always | none | | | Runtime tests | linux: always | - | none | |
1 parent c6994a7 commit 35da22a

File tree

10 files changed

+399
-589
lines changed

10 files changed

+399
-589
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
parameters:
2+
alwaysRun: false
3+
isExtraPlatformsBuild: false
4+
platforms: []
5+
6+
jobs:
7+
8+
#
9+
# Build the whole product using Mono and run libraries tests, for Wasm.Build.Tests
10+
#
11+
- template: /eng/pipelines/common/platform-matrix.yml
12+
parameters:
13+
jobTemplate: /eng/pipelines/common/global-build-job.yml
14+
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
15+
buildConfig: Release
16+
runtimeFlavor: mono
17+
platforms: ${{ parameters.platforms }}
18+
variables:
19+
# map dependencies variables to local variables
20+
- name: wasmbuildtestsContainsChange
21+
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'] ]
22+
- name: alwaysRunVar
23+
value: ${{ parameters.alwaysRun }}
24+
jobParameters:
25+
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
26+
testGroup: innerloop
27+
nameSuffix: WasmBuildTests
28+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:TestWasmBuildTests=true /p:TestAssemblies=false /p:BrowserHost=$(_hostedOs)
29+
timeoutInMinutes: 180
30+
condition: >-
31+
or(
32+
eq(variables['alwaysRunVar'], true),
33+
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'], true))
34+
# extra steps, run tests
35+
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
36+
extraStepsParameters:
37+
creator: dotnet-bot
38+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)_$(_hostedOs)
39+
extraHelixArguments: /p:BrowserHost=$(_hostedOs)
40+
scenarios:
41+
- buildwasmapps
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
parameters:
2+
alwaysRun: false
3+
isExtraPlatformsBuild: false
4+
platforms: []
5+
6+
jobs:
7+
8+
# Wasm debugger tests - windows
9+
- template: /eng/pipelines/common/platform-matrix.yml
10+
parameters:
11+
jobTemplate: /eng/pipelines/common/global-build-job.yml
12+
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
13+
buildConfig: Release
14+
runtimeFlavor: mono
15+
platforms: ${{ parameters.platforms }}
16+
variables:
17+
# map dependencies variables to local variables
18+
- name: wasmdebuggertestsContainsChange
19+
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_wasmdebuggertests.containsChange'] ]
20+
- name: alwaysRunVar
21+
value: ${{ parameters.alwaysRun }}
22+
jobParameters:
23+
testGroup: innerloop
24+
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
25+
nameSuffix: Mono_DebuggerTests
26+
buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:TestWasmDebuggerTests=true /p:TestAssemblies=false /p:BrowserHost=$(_hostedOs)
27+
timeoutInMinutes: 180
28+
condition: >-
29+
or(
30+
eq(variables['alwaysRunVar'], true),
31+
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmdebuggertests.containsChange'], true))
32+
# extra steps, run tests
33+
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
34+
extraStepsParameters:
35+
creator: dotnet-bot
36+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
37+
extraHelixArguments: /p:BrowserHost=$(_hostedOs)
38+
scenarios:
39+
- wasmdebuggertests
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
parameters:
2+
alwaysRun: false
3+
extraBuildArgs: ''
4+
extraHelixArgs: ''
5+
isExtraPlatformsBuild: false
6+
nameSuffix: ''
7+
platforms: []
8+
runAOT: false
9+
runSmokeOnlyArg: ''
10+
11+
jobs:
12+
13+
#
14+
# Build for Browser/wasm, with EnableAggressiveTrimming=true
15+
#
16+
- template: /eng/pipelines/common/templates/wasm-library-tests.yml
17+
parameters:
18+
platforms: ${{ parameters.platforms }}
19+
nameSuffix: ${{ parameters.nameSuffix }}
20+
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
21+
extraBuildArgs: /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=${{ parameters.runAOT }} ${{ parameters.extraBuildArgs }}
22+
extraHelixArgs: /p:NeedsToBuildWasmAppsOnHelix=true ${{ parameters.extraHelixArgs }}
23+
alwaysRun: ${{ parameters.alwaysRun }}
24+
runSmokeOnlyArg: $(_runSmokeTestsOnlyArg)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
parameters:
2+
alwaysRun: false
3+
extraBuildArgs: ''
4+
extraHelixArgs: ''
5+
isExtraPlatformsBuild: false
6+
nameSuffix: ''
7+
platforms: []
8+
runSmokeOnlyArg: ''
9+
scenarios: ['normal']
10+
11+
jobs:
12+
13+
#
14+
# Build for Browser/wasm and test it on v8, browser, and nodejs
15+
#
16+
- template: /eng/pipelines/common/platform-matrix.yml
17+
parameters:
18+
jobTemplate: /eng/pipelines/common/global-build-job.yml
19+
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
20+
buildConfig: Release
21+
runtimeFlavor: mono
22+
platforms: ${{ parameters.platforms }}
23+
variables:
24+
# map dependencies variables to local variables
25+
- name: librariesContainsChange
26+
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
27+
- name: monoContainsChange
28+
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
29+
- name: alwaysRunVar
30+
value: ${{ parameters.alwaysRun }}
31+
jobParameters:
32+
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
33+
testGroup: innerloop
34+
nameSuffix: LibraryTests${{ parameters.nameSuffix }}
35+
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=$(_hostedOs) ${{ parameters.runSmokeOnlyArg }} ${{ parameters.extraBuildArgs }}
36+
timeoutInMinutes: 180
37+
# always run for runtime-wasm builds (triggered manually)
38+
# Always run for rolling builds
39+
# Else run on path changes
40+
condition: >-
41+
or(
42+
eq(variables['alwaysRunVar'], true),
43+
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
44+
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true))
45+
# extra steps, run tests
46+
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
47+
extraStepsParameters:
48+
creator: dotnet-bot
49+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
50+
extraHelixArguments: /p:BrowserHost=$(_hostedOs) ${{ parameters.runSmokeOnlyArg }} ${{ parameters.extraHelixArgs }}
51+
scenarios: ${{ parameters.scenarios }}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
parameters:
2+
alwaysRun: false
3+
isExtraPlatformsBuild: false
4+
platforms: []
5+
6+
jobs:
7+
8+
#
9+
# Build the whole product using Mono and run runtime tests
10+
#
11+
- template: /eng/pipelines/common/platform-matrix.yml
12+
parameters:
13+
jobTemplate: /eng/pipelines/common/global-build-job.yml
14+
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
15+
buildConfig: Release
16+
runtimeFlavor: mono
17+
platforms: ${{ parameters.platforms }}
18+
variables:
19+
- name: alwaysRunVar
20+
value: ${{ parameters.alwaysRun }}
21+
- name: timeoutPerTestInMinutes
22+
value: 10
23+
- name: timeoutPerTestCollectionInMinutes
24+
value: 200
25+
jobParameters:
26+
testGroup: innerloop
27+
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
28+
nameSuffix: AllSubsets_Mono_RuntimeTests
29+
buildArgs: -s mono+libs -c $(_BuildConfig)
30+
timeoutInMinutes: 180
31+
condition: >-
32+
or(
33+
eq(variables['alwaysRunVar'], true),
34+
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
35+
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true))
36+
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
37+
extraStepsParameters:
38+
creator: dotnet-bot
39+
testRunNamePrefixSuffix: Mono_$(_BuildConfig)

0 commit comments

Comments
 (0)