Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 45 additions & 49 deletions eng/pipelines/common/evaluate-default-paths.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ parameters:
eng/testing/scenarios/BuildWasmAppsJobsList.txt
eng/testing/tests.wasm.targets
src/libraries/sendtohelix-wasm.targets
src/mono/mono/component/mini-wasm-debugger.c
src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/*
src/mono/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/*
src/mono/wasi/*
Expand All @@ -20,10 +21,15 @@ parameters:
src/tests/Common/wasm-test-runner/*
]
_wasm_pipelines: [
eng/pipelines/*wasm*
eng/pipelines/common/templates/*wasm*
eng/pipelines/common/templates/runtime/wasm*
eng/pipelines/coreclr/*wasm*
eng/pipelines/**/*wasm*yml
]

# src/workloads is only used in runtime-official builds
# where evaluate-paths is not used
_always_exclude: [
src/workloads/*
eng/pipelines/common/evaluate-default-paths.yml
eng/pipelines/**
]

jobs:
Expand Down Expand Up @@ -51,8 +57,9 @@ jobs:
- eng/pipelines/installer/*
- eng/pipelines/mono/*
- eng/pipelines/libraries/*
- eng/pipelines/common/evaluate-default-paths.yml
- ${{ parameters._const_paths._wasm_specific_only }}
- ${{ parameters._const_paths._wasm_pipelines }}
- ${{ parameters._const_paths._always_exclude }}

- subset: mono_excluding_wasm
include:
Expand All @@ -63,7 +70,6 @@ jobs:
exclude:
- ${{ parameters._const_paths._wasm_specific_only }}
- ${{ parameters._const_paths._wasm_pipelines }}

- eng/Version.Details.xml
- '*.md'
- LICENSE.TXT
Expand All @@ -78,7 +84,7 @@ jobs:
- eng/pipelines/installer/*
- eng/pipelines/coreclr/*
- eng/pipelines/libraries/*
- eng/pipelines/common/evaluate-default-paths.yml
- ${{ parameters._const_paths._always_exclude }}

- subset: libraries
exclude:
Expand All @@ -96,22 +102,14 @@ jobs:
- eng/pipelines/coreclr/*
- eng/pipelines/mono/*
- eng/pipelines/installer/*
- eng/pipelines/common/evaluate-default-paths.yml
- ${{ parameters._const_paths._wasm_specific_only }}
- ${{ parameters._const_paths._wasm_pipelines }}
- ${{ parameters._const_paths._always_exclude }}

- subset: runtimetests
include:
- src/tests/*

- subset: non_runtimetests
exclude:
- src/tests/*
- ${{ parameters._const_paths._wasm_pipelines }}

# having this ensures that change in evaluate-default-paths.yml
# doesn't trigger jobs
- eng/pipelines/common/evaluate-default-paths.yml

- subset: installer
include:
- docs/manpages/*
Expand All @@ -130,8 +128,9 @@ jobs:
- eng/pipelines/coreclr/*
- eng/pipelines/mono/*
- eng/pipelines/libraries/*
- eng/pipelines/common/evaluate-default-paths.yml
- ${{ parameters._const_paths._wasm_specific_only }}
- ${{ parameters._const_paths._wasm_pipelines }}
- ${{ parameters._const_paths._always_exclude }}

# We have limited Apple Silicon testing capacity
# We want PR testing on a narrower set of changes
Expand All @@ -152,10 +151,10 @@ jobs:

#
# ** WASM **
# Changes in *only* Wasm.Build.Tests, or debugger, are very self-contained,
# so we try to avoid triggering only those relevants tests
# Changes in *only* Wasm.Build.Tests, debugger, or runtime-tests are very self-contained,
# so we try to trigger only those relevants tests
#
- subset: wasmbuildtests
- subset: run_wasmbuildtests
include:
- eng/Version.Details.xml
- eng/Versions.props
Expand All @@ -182,7 +181,7 @@ jobs:
- src/mono/wasm/Wasm.Build.Tests/*
- src/tasks/*

- subset: wasmdebuggertests
- subset: run_wasmdebuggertests
include:
- eng/testing/ProvisioningVersions.props
- src/libraries/System.Runtime.InteropServices/*
Expand All @@ -191,26 +190,35 @@ jobs:
- src/mono/wasm/debugger/*
- src/mono/wasm/runtime/*

- subset: any_other_than_wasm_wbt_dbg
# wasm/runtimetests need to be run
- subset: run_wasm_runtimetests
combined: true
include:
- src/tests/* #make const
- src/mono/*
exclude:
- src/mono/wasm/Wasm.Build.Tests/*
- src/mono/nuget/*
- src/mono/sample/*
- src/mono/tests/*
- src/mono/tools/*
- src/mono/wasi/*
- src/mono/wasm/debugger/*
- ${{ parameters._const_paths._wasm_pipelines }}

# having this ensures that change in evaluate-default-paths.yml
# doesn't trigger jobs
- eng/pipelines/common/evaluate-default-paths.yml

- subset: wasm_wbt_or_dbg
include:
- src/mono/wasm/Wasm.Build.Tests/*
- src/mono/wasm/debugger/*

- subset: wasm
# Wasm exception Wasm.build.Tests, and debugger
- subset: wasm_specific_except_wbt_dbg
combined: true
include:
- ${{ parameters._const_paths._wasm_specific_only }}
# other paths that should also trigger wasm jobs
- src/mono/*
exclude:
- eng/testing/scenarios/BuildWasmAppsJobsList.txt
- eng/testing/workloads-testing.targets
- src/mono/mono/component/mini-wasm-debugger.c
- src/mono/wasm/debugger/*
- src/mono/wasm/Wasm.Build.Tests/*
- src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/*
- src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/*
- src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/*

# libraries with some wasm specific code
- subset: wasm_libraries
Expand All @@ -233,16 +241,6 @@ jobs:
- src/libraries/System.Security.Cryptography/*
- src/libraries/System.Text.Encodings.Web/*

# anything other than wasm-specific paths
- subset: non_wasm
exclude:
- ${{ parameters._const_paths._wasm_specific_only }}
- ${{ parameters._const_paths._wasm_pipelines }}

# having this ensures that change in evaluate-default-paths.yml won't
# trigger non-onlywasm jobs
- eng/pipelines/common/evaluate-default-paths.yml

# anything other than mono, or wasm specific paths
- subset: non_mono_and_wasm
exclude:
Expand All @@ -259,9 +257,7 @@ jobs:
- src/tasks/WasmBuildTasks/*
- src/tasks/WorkloadBuildTasks/*

# having this ensures that change in evaluate-default-paths.yml
# doesn't trigger jobs
- eng/pipelines/common/evaluate-default-paths.yml
- ${{ parameters._const_paths._always_exclude }}

- ${{ if ne(parameters.extraSubsets, '') }}:
- ${{ parameters.extraSubsets }}
2 changes: 2 additions & 0 deletions eng/pipelines/common/evaluate-paths-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ jobs:
parameters:
subsetName: ${{ path.subset }}
arguments:
- ${{ if eq(path.combined, true) }}:
- --combined
# The commit that we're building is always a merge commit that is merging into the target branch.
# So the first parent of the commit is on the target branch and the second parent is on the source branch.
- --difftarget HEAD^1
Expand Down
13 changes: 5 additions & 8 deletions eng/pipelines/common/templates/wasm-build-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,11 @@ jobs:
value: ${{ parameters.alwaysRun }}
- name: shouldRunOnDefaultPipelines
value: $[
or(
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
and(
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_non_runtimetests.containsChange'], true)),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true))
or(
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true))
]
jobParameters:
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
Expand Down
8 changes: 2 additions & 6 deletions eng/pipelines/common/templates/wasm-build-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,15 @@ jobs:
value: $[
or(
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'], true))
eq(variables['wasmDarcMonoLLVMChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_run_wasmbuildtests.containsChange'], true))
]
jobParameters:
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
testGroup: innerloop
nameSuffix: WasmBuildTests
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:TestWasmBuildTests=true /p:TestAssemblies=false /p:BrowserHost=$(_hostedOs)
timeoutInMinutes: 180
# if !alwaysRun, then:
# if this is runtime-wasm (isWasmOnlyBuild):
# - then run only if it would not have run on default pipelines (based
# on path changes)
# - else run based on path changes
condition: >-
or(
eq(variables['alwaysRunVar'], true),
Expand Down
3 changes: 2 additions & 1 deletion eng/pipelines/common/templates/wasm-debugger-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ jobs:
value: $[
or(
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmdebuggertests.containsChange'], true))
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.Microsoft_DotNet_HotReload_Utils_Generator_BuildTool'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_run_wasmdebuggertests.containsChange'], true))
]
jobParameters:
testGroup: innerloop
Expand Down
22 changes: 6 additions & 16 deletions eng/pipelines/common/templates/wasm-library-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,17 @@ jobs:
# map dependencies variables to local variables
- name: alwaysRunVar
value: ${{ parameters.alwaysRun }}
# - wasm darc deps changed
# - any libs that can have wasm specific changes
# - any other wasm specific changes that are not wbt, or dbg
- name: shouldRunOnDefaultPipelines
value: $[
or(
eq(variables['wasmDarcDependenciesChanged'], true),
and(
ne(variables['onlyWBTOrDbgTestHaveChanges'], true),
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
and(
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_non_runtimetests.containsChange'], true)))))
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true))
]
- name: onlyWBTOrDbgTestHaveChanges
value:
and(
eq(dependencies.evaluate_paths.outputs.SetPathVars_wasm_wbt_or_dbg.containsChange, true),
ne(dependencies.evaluate_paths.outputs.SetPathVars_any_other_than_wasm_wbt_dbg.containsChange, true))
- name: _wasmRunSmokeTestsOnlyArg
value: /p:RunSmokeTestsOnly=${{ eq(parameters.shouldRunSmokeOnly, true) }}
jobParameters:
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
testGroup: innerloop
Expand Down
9 changes: 1 addition & 8 deletions eng/pipelines/common/templates/wasm-runtime-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ jobs:
value: $[
or(
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm.containsChange'], true))
eq(dependencies.evaluate_paths.outputs['SetPathVars_run_wasm_runtimetests.containsChange'], true))
]
jobParameters:
testGroup: innerloop
Expand All @@ -37,12 +36,6 @@ jobs:
runtimeVariant: monointerpreter
buildArgs: -s mono+libs -c $(_BuildConfig)
timeoutInMinutes: 180
# FIXME: will get triggered by only wbt/dbg changes
# if !alwaysRun, then:
# if this is runtime-wasm (isWasmOnlyBuild):
# - then run only if it would not have run on default pipelines (based
# on path changes)
# - else run based on path changes
condition: >-
or(
eq(variables['alwaysRunVar'], true),
Expand Down
25 changes: 19 additions & 6 deletions eng/pipelines/common/xplat-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,26 @@ jobs:
${{ if eq(parameters.jobParameters.runtimeFlavor, 'coreclr') }}:
value: CoreCLR

- name: allChangedDarcDependencies
value: $[ join('+',dependencies.evaluate_paths.outputs) ]

- name: wasmDarcDependenciesChanged
${{ if eq(parameters.archType, 'wasm') }}:
value: $[ or(
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_Workload_Emscripten_Manifest-7_0_100'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_DotNet_Build_Tasks_Workloads'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.System_Runtime_TimeZoneData'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) ]
value: $[ or(
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_Workload_Emscripten_Manifest-8_0_100'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_DotNet_Build_Tasks_Workloads'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.System_Runtime_TimeZoneData'], true),
eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) ]

- name: wasmDarcMonoLLVMChanged
value: $[ or(
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_linux-arm64_Microsoft_NETCore_Runtime_Mono_LLVM_Sdk'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_linux-arm64_Microsoft_NETCore_Runtime_Mono_LLVM_Tools'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_linux-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Sdk'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_linux-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Tools'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_win-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Sdk'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_win-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Tools'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_osx_10_12-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Sdk'], true),
eq(dependencies.evaluate_paths_outputs['DarcDependenciesChanged.runtime_osx_10_12-x64_Microsoft_NETCore_Runtime_Mono_LLVM_Tools'], true)) ]

- ${{ each variable in parameters.variables }}:
- ${{ variable }}
Expand Down
Loading