Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 5.6k
Add mono interpreter test leg to CI#35568
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
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
083f8ac1dc05b262be61a4e7e20dc192f7d0a43f59373a29464d9da9fa00155b5d9940194b05156f45f33622d83File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -7,6 +7,8 @@ parameters: | ||
| isOfficialBuild: false | ||
| liveRuntimeBuildConfig: '' | ||
| runtimeFlavor: 'coreclr' | ||
| runtimeDisplayName: 'coreclr' | ||
| interpreter: '' | ||
| timeoutInMinutes: 150 | ||
| pool: '' | ||
| runtimeVariant: '' | ||
| @@ -35,11 +37,13 @@ jobs: | ||
| pool: ${{ parameters.pool }} | ||
| testScope: ${{ parameters.testScope }} | ||
| ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: | ||
| displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} | ||
| name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeFlavor) }} | ||
| displayName: ${{ format('Test Run {0} {1}', parameters.liveRuntimeBuildConfig, parameters.runtimeDisplayName) }} | ||
| name: ${{ format('test_run_{0}_{1}', parameters.liveRuntimeBuildConfig, parameters.runtimeDisplayName) }} | ||
| ${{ if eq(parameters.liveRuntimeBuildConfig, '') }}: | ||
| displayName: 'Test Run' | ||
| name: test_run | ||
| ${{ if eq(parameters.interpreter, 'true') }}: | ||
| testDisplayName: ${{ parameters.runtimeFlavor }}_interpreter_${{ parameters.liveRuntimeBuildConfig }} | ||
safern marked this conversation as resolved.
Outdated
Uh oh!There was an error while loading. Please reload this page. | ||
| dependsOn: | ||
| - ${{ if notIn(parameters.framework, 'allConfigurations', 'net472') }}: | ||
| @@ -91,6 +95,7 @@ jobs: | ||
| msbuildScript: $(_msbuildCommand) | ||
| framework: ${{ parameters.framework }} | ||
| testScope: ${{ parameters.testScope }} | ||
| interpreter: ${{ parameters.interpreter }} | ||
| creator: dotnet-bot | ||
| helixToken: '' | ||
| testRunNamePrefixSuffix: $(_testRunNamePrefixSuffix) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -826,6 +826,37 @@ jobs: | ||
| jobParameters: | ||
| isOfficialBuild: false | ||
| isFullMatrix: ${{ variables.isFullMatrix }} | ||
| runtimeDisplayName: mono | ||
| testScope: innerloop | ||
| liveRuntimeBuildConfig: release | ||
| dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} | ||
| dependsOnTestArchitecture: x64 | ||
| condition: >- | ||
| or( | ||
| eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), | ||
| eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), | ||
| eq(variables['isFullMatrix'], true)) | ||
| # | ||
| # Libraries Release Test Execution against a release mono interpreter runtime. | ||
| # Only when libraries or mono changed | ||
| # | ||
| - template: /eng/pipelines/common/platform-matrix.yml | ||
| parameters: | ||
| jobTemplate: /eng/pipelines/libraries/run-test-job.yml | ||
| runtimeFlavor: mono | ||
| buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} | ||
| platforms: | ||
| # - Windows_NT_x64 | ||
| #- OSX_x64 | ||
| #- Linux_arm64 | ||
| - Linux_x64 | ||
Member 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. It makes me wonder if we should add a new platform-matrix and consume more resources by adding more legs. Should we instead introduce a new multi-helix-job project that calls into Just throwing some ideas here, that will also simplify the build whenever we move mono to build and run tests as part of the same build leg, so that way we wouldn't need to build the tests twice, etc. MemberAuthor 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 there are efficiencies to be had for sure. It would be nice if we could run multiple jobs like you describe and still maintain a 'separate leg' view in the UI. I feel it's important to have the interpreter be first class / distinct in that regard. We definitely should discuss / throw out more ideas. Member 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 don't think that would be possible, but I think I wouldn't mind having one leg for the mono tests and then having multiple test modes in that single run leg. our infra should be resilient to display the test results correctly for that. Runtime tests do that, they send regular runs and non tiered compilation runs I believe. Member 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. Discussed offline and @steveisok is going to open a issue tracking this and we can do it in a follow up PR. Member 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. What is the tracking issue? We should add it to the change here for tracking. MemberAuthor 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. | ||
| helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml | ||
steveisok marked this conversation as resolved.
Outdated
Uh oh!There was an error while loading. Please reload this page. | ||
| jobParameters: | ||
| isOfficialBuild: false | ||
| isFullMatrix: ${{ variables.isFullMatrix }} | ||
| interpreter: true | ||
| runtimeDisplayName: mono_interpreter | ||
| testScope: innerloop | ||
| liveRuntimeBuildConfig: release | ||
| dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information. | ||
| using System; | ||
| using Xunit; | ||
| [assembly: ActiveIssue("https://github.com/dotnet/runtime/issues/35917", typeof(PlatformDetection), nameof(PlatformDetection.IsNotMonoInterpreter))] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -84,7 +84,7 @@ public void Ctor_Format() | ||
| } | ||
| } | ||
| [Fact] | ||
| [ConditionalFact(Helpers.IsDrawingSupported)] | ||
safern marked this conversation as resolved.
Outdated
Uh oh!There was an error while loading. Please reload this page. | ||
| public void Ctor_NullFormat_ThrowsArgumentNullException() | ||
| { | ||
| AssertExtensions.Throws<ArgumentNullException>("format", () => new StringFormat(null)); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information. | ||
| using System; | ||
| using Xunit; | ||
| [assembly: ActiveIssue("https://github.com/dotnet/runtime/issues/35916", typeof(PlatformDetection), nameof(PlatformDetection.IsNotMonoInterpreter))] |
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.
As we discussed offline, maybe it makes sense to use the already known
runtimeModeas a switch instead of adding a boolean flag: https://github.com/dotnet/runtime/blob/master/eng/pipelines/runtime.yml#L746