forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move Native AOT outerloop tests to their own pipeline (dotnet#91684)
Native AOT tests are regularly queued on their own and are very reliable. By putting the tests in their own queue we can both queue the Native AOT tests individually and ensure that the pipeline stays green.
- Loading branch information
Showing
2 changed files
with
196 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
|
||
# This pipeline includes the Native AOT tests that we don't have resources to | ||
# run on every PR but that we want to still have test coverage, we run this | ||
# pipeline on a schedule and also developers can run it via /azp run command on | ||
# PRs. This pipeline permits us to have the main runtime pipeline run the same | ||
# platforms in PRs and Scheduled builds. | ||
|
||
# Setting batch to true, triggers one build at a time. | ||
# if there is a push while a build in progress, it will wait, | ||
# until the running build finishes, and produce a build with all the changes | ||
# that happened during the last build. | ||
trigger: | ||
batch: true | ||
branches: | ||
include: | ||
- release/*.* | ||
paths: | ||
include: | ||
- '*' | ||
exclude: | ||
- '**.md' | ||
- eng/Version.Details.xml | ||
- .devcontainer/* | ||
- .github/* | ||
- docs/* | ||
- LICENSE.TXT | ||
- PATENTS.TXT | ||
- THIRD-PARTY-NOTICES.TXT | ||
|
||
schedules: | ||
- cron: "0 9,21 * * *" # run at 9:00 and 21:00 (UTC) which is 1:00 and 13:00 (PST). | ||
displayName: Nativeaot-outerloop main schedule | ||
branches: | ||
include: | ||
- main | ||
always: false # run only if there were changes since the last successful scheduled run. | ||
|
||
|
||
# | ||
# CoreCLR NativeAOT release build and libraries tests | ||
# Only when CoreCLR or library is changed | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml | ||
buildConfig: Release | ||
platforms: | ||
- windows_x64 | ||
- windows_arm64 | ||
- osx_x64 | ||
- osx_arm64 | ||
- linux_x64 | ||
- linux_arm64 | ||
- linux_musl_x64 | ||
jobParameters: | ||
testGroup: innerloop | ||
isSingleFile: true | ||
nameSuffix: NativeAOT_Libs | ||
buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:ArchiveTests=true | ||
timeoutInMinutes: 300 # doesn't normally take this long, but I've seen Helix queues backed up for 160 minutes | ||
# extra steps, run tests | ||
extraStepsTemplate: /eng/pipelines/libraries/helix.yml | ||
extraStepsParameters: | ||
creator: dotnet-bot | ||
testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) | ||
condition: >- | ||
or( | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
# | ||
# CoreCLR NativeAOT release build (checked runtime) and libraries tests | ||
# Only when CoreCLR or library is changed | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml | ||
buildConfig: Release | ||
platforms: | ||
- windows_x64 | ||
- linux_arm64 | ||
jobParameters: | ||
testGroup: innerloop | ||
isSingleFile: true | ||
nameSuffix: NativeAOT_Checked_Libs | ||
buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) -rc Checked /p:TestNativeAot=true /p:ArchiveTests=true | ||
timeoutInMinutes: 360 | ||
# extra steps, run tests | ||
extraStepsTemplate: /eng/pipelines/libraries/helix.yml | ||
extraStepsParameters: | ||
creator: dotnet-bot | ||
testRunNamePrefixSuffix: NativeAOT_Checked_$(_BuildConfig) | ||
condition: >- | ||
or( | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
# | ||
# CoreCLR NativeAOT release build (checked runtime) - SizeOpt and libraries tests | ||
# Only when CoreCLR or library is changed | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml | ||
buildConfig: Release | ||
platforms: | ||
- windows_x64 | ||
- linux_x64 | ||
jobParameters: | ||
testGroup: innerloop | ||
isSingleFile: true | ||
nameSuffix: NativeAOT_Checked_Libs_SizeOpt | ||
buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) -rc Checked /p:TestNativeAot=true /p:ArchiveTests=true /p:OptimizationPreference=Size | ||
timeoutInMinutes: 240 | ||
# extra steps, run tests | ||
extraStepsTemplate: /eng/pipelines/libraries/helix.yml | ||
extraStepsParameters: | ||
creator: dotnet-bot | ||
testRunNamePrefixSuffix: NativeAOT_Checked_SizeOpt_$(_BuildConfig) | ||
condition: >- | ||
or( | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
# | ||
# CoreCLR NativeAOT release build (checked runtime) - SpeedOpt and libraries tests | ||
# Only when CoreCLR or library is changed | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml | ||
buildConfig: Release | ||
platforms: | ||
- windows_x64 | ||
- linux_x64 | ||
jobParameters: | ||
testGroup: innerloop | ||
isSingleFile: true | ||
nameSuffix: NativeAOT_Checked_Libs_SpeedOpt | ||
buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) -rc Checked /p:TestNativeAot=true /p:ArchiveTests=true /p:OptimizationPreference=Speed | ||
timeoutInMinutes: 240 | ||
# extra steps, run tests | ||
extraStepsTemplate: /eng/pipelines/libraries/helix.yml | ||
extraStepsParameters: | ||
creator: dotnet-bot | ||
testRunNamePrefixSuffix: NativeAOT_Checked_SpeedOpt_$(_BuildConfig) | ||
condition: >- | ||
or( | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
# | ||
# CoreCLR NativeAOT checked build and Pri0 tests | ||
# Only when CoreCLR is changed | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
buildConfig: Checked | ||
platforms: | ||
- windows_x64 | ||
- linux_x64 | ||
variables: | ||
- name: timeoutPerTestInMinutes | ||
value: 60 | ||
- name: timeoutPerTestCollectionInMinutes | ||
value: 180 | ||
jobParameters: | ||
timeoutInMinutes: 240 | ||
nameSuffix: NativeAOT_Pri0 | ||
buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release | ||
extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml | ||
extraStepsParameters: | ||
creator: dotnet-bot | ||
testBuildArgs: 'nativeaot /p:IlcUseServerGc=false' | ||
liveLibrariesBuildConfig: Release | ||
testRunNamePrefixSuffix: NativeAOT_Pri0_$(_BuildConfig) | ||
extraVariablesTemplates: | ||
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml | ||
parameters: | ||
testGroup: innerloop | ||
liveLibrariesBuildConfig: Release | ||
condition: >- | ||
or( | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), | ||
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters