Skip to content

chore(ci): Install iOS platforms and enable tests again#22636

Open
agneszitte wants to merge 6 commits intomasterfrom
dev/agzi/enabling-ios-macos-tests
Open

chore(ci): Install iOS platforms and enable tests again#22636
agneszitte wants to merge 6 commits intomasterfrom
dev/agzi/enabling-ios-macos-tests

Conversation

@agneszitte
Copy link
Contributor

@agneszitte agneszitte commented Feb 11, 2026

This installs iOS platform components after selecting Xcode to avoid missing simulator runtimes on macOS runners.

It also re-enables the iOS/macOS tests previously disabled in #22608 and temporarily forces the iOS native stage to run for this draft PR so we can measure CI time impact while runner images are still deployed/propagated
(Ref: actions/runner-images#13607 (comment) / https://github.com/actions/runner-images/blob/main/README.md#available-images)

Note: No related issue (Internal maintenance / Approved by Team member: @agneszitte).

Copilot AI review requested due to automatic review settings February 11, 2026 21:03
@github-actions github-actions bot added the area/build Categorizes an issue or PR as relevant to build infrastructure label Feb 11, 2026
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

Updates the Azure DevOps CI to restore iOS/macOS test coverage after runner image rollout issues, and adds an Xcode initialization/platform download step to reduce missing simulator/runtime failures on macOS agents.

Changes:

  • Re-enable previously disabled macOS template tests and Skia iOS/macOS runtime test stages.
  • Add Xcode “first launch” initialization and iOS platform download after xcode-select.
  • Re-enable iOS TestFlight stage and temporarily force iOS native tests to run on a specific draft-PR branch.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
build/ci/tests/.azure-devops-tests-templates.yml Re-enables macOS template test job by removing the hard-disabled condition.
build/ci/tests/.azure-devops-tests-skia-stages.yml Re-enables Skia iOS and macOS runtime test stages by removing hard-disabled conditions.
build/ci/templates/ios-build-select-version.yml Runs Xcode first-launch initialization and downloads iOS platform components after selecting Xcode.
build/ci/.azure-devops-stages.yml Re-enables iOS TestFlight stage and changes iOS native test stage condition (including a temporary branch-specific override).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

Copilot AI review requested due to automatic review settings February 11, 2026 22:21
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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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

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


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +24 to +27
elif [ -n "$SDK_VERSION" ]; then
if xcrun simctl list runtimes | grep -q "iOS $SDK_VERSION"; then
echo "Required iOS simulator runtime already installed."
exit 0
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

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

grep is used with a regex pattern that includes $SDK_VERSION (which contains .). That makes the match less precise because . is a regex wildcard. Use fixed-string matching (e.g. grep -Fq) or escape the version string so the runtime check doesn’t produce false positives/negatives.

Copilot uses AI. Check for mistakes.
Comment on lines +52 to +56
if [ -n "$SDK_BUILD_VERSION" ] && xcrun simctl list runtimes | grep -q "iOS.*$SDK_BUILD_VERSION"; then
echo "Required iOS simulator runtime now installed."
elif [ -n "$SDK_VERSION" ] && xcrun simctl list runtimes | grep -q "iOS $SDK_VERSION"; then
echo "Required iOS simulator runtime now installed."
elif [ -z "$SDK_BUILD_VERSION" ] && [ -z "$SDK_VERSION" ] && xcrun simctl list runtimes | grep -q "iOS"; then
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

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

Same regex issue in the post-download verification: $SDK_VERSION contains dots and is treated as a regex. Switch to fixed-string matching (or escape) to ensure the runtime presence check is accurate.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 195947 has failed on Uno.UI - CI.

@MartinZikmund MartinZikmund marked this pull request as ready for review February 12, 2026 08:32
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 196000 has failed on Uno.UI - CI.

@MartinZikmund MartinZikmund force-pushed the dev/agzi/enabling-ios-macos-tests branch from 05b5775 to dc1b663 Compare February 12, 2026 14:41
@MartinZikmund
Copy link
Member

@agneszitte Rebased on latest master, we shall see if all tests get green

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 196037 has failed on Uno.UI - CI.

Copilot AI review requested due to automatic review settings February 13, 2026 15:16
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

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

build/ci/.azure-devops-stages.yml:152

  • The ios_tests stage no longer has an effective condition, so it will run by default on PRs instead of being scoped by DetermineScope.SetScope.RequireNativeIos. If this is only for measuring CI time, consider adding a temporary override flag (variable/parameter) while keeping the original condition as the default to avoid permanently forcing iOS native UI tests on unrelated PRs.
- stage: ios_tests
  displayName: Tests - iOS Native
  # condition: and(succeededOrFailed(), or(ne(variables['Build.Reason'], 'PullRequest'), eq(stageDependencies.Setup.outputs['DetermineScope.SetScope.RequireNativeIos'], 'true'))) # Temporary: force-enable on this draft PR for CI timing.
  dependsOn:
    - Setup

  jobs:
  - template: tests/.azure-devops-tests-ios-native.yml

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +24 to +28
elif [ -n "$SDK_VERSION" ]; then
if xcrun simctl list runtimes | grep -q "iOS $SDK_VERSION"; then
echo "Required iOS simulator runtime already installed."
exit 0
fi
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

grep -q "iOS $SDK_VERSION" treats SDK_VERSION as a regex, so dots in versions (e.g. 17.5) will match any character. This can cause false positives/negatives and may trigger unnecessary xcodebuild -downloadPlatform runs. Use fixed-string matching (e.g. grep -Fq) or escape the version string before grepping.

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +12
- bash: |
echo 'xCode Root to ${{parameters.xCodeRoot}}'
echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'${{parameters.xCodeRoot}}
sudo xcode-select --switch ${{parameters.xCodeRoot}}/Contents/Developer
sudo xcodebuild -runFirstLaunch
# Verify expected iOS simulator runtime; download only if missing.
SDK_BUILD_VERSION=$(xcrun --sdk iphonesimulator --show-sdk-build-version 2>/dev/null || true)
SDK_VERSION=$(xcrun --sdk iphonesimulator --show-sdk-version 2>/dev/null || true)
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

This script doesn’t enable set -e (or otherwise check return codes), so a failure in xcode-select/xcodebuild -runFirstLaunch could be ignored and the step may still exit 0 later, masking the real issue. Consider adding set -e near the top (or explicitly || exit 1 on the critical commands) so CI fails fast when Xcode selection/initialization fails.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

@MartinZikmund MartinZikmund force-pushed the dev/agzi/enabling-ios-macos-tests branch from 6244772 to 7790148 Compare February 13, 2026 17:57
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22636/wasm-skia-net9/index.html

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

Labels

area/build Categorizes an issue or PR as relevant to build infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants