Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 5, 2025

Adds support for debug configured runs (-c Debug) for MAUI Android and iOS scenario benchmarks by passing buildConfig: debug through the pipeline and into the pre.py publish command.

Changes

scripts/run_performance_job.py

  • Added DEFAULT_BUILD_CONFIG constant for the default "Release" configuration
  • Extended get_run_configurations() to include BuildConfig in configurations for maui_scenarios_android and maui_scenarios_ios run_kinds only when the build configuration is not the default (Release). This preserves existing trend data for Release builds while tracking Debug builds as new configurations.
  • Added BuildConfig environment variable for MSBuild payload preparation

eng/performance/maui_scenarios_android.proj

  • Added -c $(BuildConfig) to pre.py publish command

eng/performance/maui_scenarios_ios.proj

  • Changed hardcoded -c Release to -c $(BuildConfig)

eng/pipelines/sdk-perf-jobs.yml

  • Added 8 duplicate job definitions with buildConfig: debug for all existing MAUI scenarios:
    • Android: Mono ProfiledAOT, Mono AOT, CoreCLR JIT/R2R/R2RComposite/NativeAOT
    • iOS: Mono FullAOT, CoreCLR NativeAOT
Original prompt

We want to add debug configured runs to the current testing we are doing for the apps in the maui_scenarios_android.proj and the maui_scenarios_ios.proj files. Can you come up with some solutions to getting properly setup debug builds (via passing -c debug into the python pre.py publish command)? The first approach that comes to mind would be to take advantage of the BuildConfig job parameter at the sdk-perf-jobs.yml jobParameters level, passing through buildConfig: debug on a duplicate set of the mobile jobs. Than we could update get_run_configurations in run_performance_job.py to include "BuildConfig" as a configuration for the maui_scenarios_android and maui_scenarios_ios run_kinds. Finally, the _BuildConfig would be passed into the pre.py publish command as the configuration. We would also add this as a part of the RunConfig as string property.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 4 commits December 5, 2025 18:23
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
…emove unnecessary str() conversions

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Copilot AI changed the title [WIP] Add debug configured runs for mobile testing Add debug build configuration support for MAUI Android and iOS scenarios Dec 5, 2025
Copilot AI requested a review from LoopedBard3 December 5, 2025 18:34
@LoopedBard3
Copy link
Member

@copilot please update the two new lines like:

if build_config is not None:
            configurations["BuildConfig"] = build_config

to instead only add BuildConfig to the configurations when it is not the default value. This will ensure we don't break the current trends we have and instead make it so that these are just new configs when running as Debug.

Co-authored-by: LoopedBard3 <15679138+LoopedBard3@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 15, 2026

@copilot please update the two new lines like:

...

Updated to only add BuildConfig when it's not the default value (Release). This ensures existing release builds maintain current trends while debug builds are tracked as new configurations. Changes in commit 75f76c6.

@LoopedBard3
Copy link
Member

LoopedBard3 commented Jan 22, 2026

There are a few issues being seen in the test run (https://dev.azure.com/dnceng/internal/_build/results?buildId=2884653&view=results):

  • Device startup failing. The apps are properly made but something (possibly different between the devices) is causing the device startup tests to fail while most of the SOD tests seem to succeed.
  • CSC : warning AD0001: Analyzer 'ILLink.RoslynAnalyzer.DynamicallyAccessedMembersAnalyzer' threw an exception of type 'System.MissingMethodException' with message 'Method not found: 'Microsoft.CodeAnalysis.IParameterSymbol Microsoft.CodeAnalysis.ITypeSymbol.get_ExtensionParameter()'.'. [/Users/runner/work/1/s/performance/CorrelationStaging/payload/performance/src/scenarios/netios/app/NetiOSDefault.csproj]. Already tracked [NETSDKE2E][Regression]With 11.0.100-preview.1.26070.110 SDK installed, warning AD0001 appears when publish console project using PublishSingleFile=true in CLI. sdk#52599
  • Version extraction is failing for debug due to path issue: Cannot find Mono.Android.dll in ./app/obj/Release/net11.0-ios/ios-arm64/linked. Skipping version extraction. (Working on a fix for this).
  • [2026/01/21 22:35:41][INFO] [2026/01/21 22:35:41][INFO] D:\a\1\s\performance\CorrelationStaging\payload\dotnet\packs\Microsoft.Android.Sdk.Windows\36.1.99-ci.main.92\targets\Microsoft.Android.Sdk.AssemblyResolution.targets(198,5): error MSB4096: The item "obj\Debug\net11.0-android\android-arm64\NetAndroidDefault.pdb" in item list "ResolvedSymbols" does not define a value for metadata "DestinationSubPath". In order to use this metadata, either qualify it by specifying %(ResolvedSymbols.DestinationSubPath), or ensure that all items in this list define a value for this metadata. [D:\a\1\s\performance\CorrelationStaging\payload\performance\src\scenarios\netandroid\app\NetAndroidDefault.csproj] (R2R CoreCLR Debug) complete failure. (Possibly related to Cannot publish android project with ReadyToRun runtime#109004)

I am working on the version extraction issue, the first two issues should be followed up in another PR, and I the cause of the last needs to be investigated. @matouskozak do we expect the CoreCLR runs to currently be compatible with building Debug or have you seen this error before?

@LoopedBard3
Copy link
Member

@LoopedBard3 LoopedBard3 marked this pull request as ready for review January 22, 2026 21:01
@LoopedBard3
Copy link
Member

LoopedBard3 commented Jan 22, 2026

I went ahead and disabled the R2R Debug jobs as they are failing so we can start getting some results for this. The issues that need to be tracked include:

  • Device startup failing. The apps are properly made but something (possibly different between the devices) is causing the device startup tests to fail while most of the SOD tests seem to succeed.
  • CSC : warning AD0001: Analyzer 'ILLink.RoslynAnalyzer.DynamicallyAccessedMembersAnalyzer' threw an exception of type 'System.MissingMethodException' with message 'Method not found: 'Microsoft.CodeAnalysis.IParameterSymbol Microsoft.CodeAnalysis.ITypeSymbol.get_ExtensionParameter()'.'. [/Users/runner/work/1/s/performance/CorrelationStaging/payload/performance/src/scenarios/netios/app/NetiOSDefault.csproj]. Already tracked [NETSDKE2E][Regression]With 11.0.100-preview.1.26070.110 SDK installed, warning AD0001 appears when publish console project using PublishSingleFile=true in CLI. sdk#52599
  • D:\a\1\s\performance\CorrelationStaging\payload\dotnet\packs\Microsoft.Android.Sdk.Windows\36.1.99-ci.main.92\targets\Microsoft.Android.Sdk.AssemblyResolution.targets(198,5): error MSB4096: The item "obj\Debug\net11.0-android\android-arm64\NetAndroidDefault.pdb" in item list "ResolvedSymbols" does not define a value for metadata "DestinationSubPath". In order to use this metadata, either qualify it by specifying %(ResolvedSymbols.DestinationSubPath), or ensure that all items in this list define a value for this metadata. [D:\a\1\s\performance\CorrelationStaging\payload\performance\src\scenarios\netandroid\app\NetAndroidDefault.csproj] (R2R CoreCLR Debug) complete failure. (Possibly related to Cannot publish android project with ReadyToRun runtime#109004)

I did also confirm that the BuildConfig=Debug RunConfiguration item is present.

@LoopedBard3
Copy link
Member

This partially completes: #5061

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants