Skip to content

Conversation

@kotlarmilos
Copy link
Member

Description

This PR enables CoreCLR UI tests, mirroring the existing Android CoreCLR tests implementation.

Copilot AI review requested due to automatic review settings December 8, 2025 13:50
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables CoreCLR UI tests for iOS and MacCatalyst platforms, mirroring the existing Android CoreCLR tests implementation. The changes allow the UI test pipeline to build and run tests using the CoreCLR runtime on Apple mobile and desktop platforms, in addition to the existing Mono and Android CoreCLR support.

Key Changes

  • Added three new build stages for CoreCLR: iOS, MacCatalyst, and Android (renamed from generic CoreCLR stage)
  • Added two new test execution stages: iOS CoreCLR and macOS CoreCLR tests
  • Extended build script to support platform-specific target framework selection for CoreCLR builds

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
eng/pipelines/common/ui-tests.yml Splits the generic CoreCLR build stage into platform-specific stages (Android, iOS, Catalyst) and adds corresponding test execution stages for iOS and macOS CoreCLR tests
eng/cake/dotnet.cake Adds platform detection logic to set appropriate target framework (ios, maccatalyst, android) for CoreCLR builds based on command-line arguments

else if (HasArgument("android"))
{
properties.Add("TargetFramework", $"{DefaultDotnetVersion}-android");
}
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing fallback case for CoreCLR builds when no platform argument is provided. If USE_CORECLR is true but none of the platform arguments (ios, catalyst, maccatalyst, android) are provided, the TargetFramework property will not be set, which could lead to build failures.

Consider adding an else clause to handle this case, either by:

  1. Defaulting to a specific platform (e.g., Android for backward compatibility)
  2. Throwing a clear error message indicating which platform argument is required

Example:

else
{
    throw new Exception("CoreCLR builds require one of: --ios, --catalyst, --maccatalyst, or --android");
}
Suggested change
}
}
else
{
throw new Exception("CoreCLR builds require one of: --ios, --catalyst, --maccatalyst, or --android");
}

Copilot uses AI. Check for mistakes.
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.

3 participants