-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move Native AOT outerloop tests to their own pipeline #91684
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. When you ask the first responders to create a pipeline definition for this in AzDO, could you also ask if there's a guidance on how to spread out scheduled pipeline runs? I see this one would happen at the same time as extra-platforms. Maybe we should spread them out? |
||
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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is the test group still There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think so. This is a terminology issue, but even though this pipeline is "outer-loop", the test group is "inner loop." I could be wrong about that, though. |
||
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)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a clarification, to initiate a build manually, one would need to do:
/azp run runtime-nativeaot-outerloop
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup that's the intent