Conversation
There was a problem hiding this comment.
Pull request overview
This PR modifies the CI/CD pipeline configuration to prevent failures when Xcode 16 is not found on macOS-14 runners used for MacCatalyst UI tests. The changes make Xcode provisioning more lenient by skipping it entirely for catalyst platform and converting fatal errors to warnings when the requested version is unavailable.
Changes:
- Added 'catalyst' platform to the list of platforms that skip Xcode provisioning
- Changed exit code from 1 to 0 when no suitable Xcode version is found, converting a failure to a warning
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| eng/pipelines/common/ui-tests-steps.yml | Adds catalyst platform to skipXcode condition to prevent attempting Xcode provisioning |
| eng/pipelines/common/provision.yml | Changes exit code from failure (1) to success (0) when Xcode version not found |
| echo "ERROR: No suitable Xcode version found for requested version ${ORIGINAL_VERSION}" | ||
| echo "Tried: ${VERSIONS_TO_TRY[*]}" | ||
| exit 1 | ||
| exit 0 |
There was a problem hiding this comment.
Changing the exit code from 1 to 0 when no suitable Xcode version is found masks a potentially serious configuration error. This could allow builds to proceed without the required toolchain, leading to silent failures or incorrect build artifacts. Instead of masking the error globally, consider conditionally handling this based on whether Xcode is actually required for the current platform (e.g., check if skipXcode is true before deciding the exit code).
| @@ -144,7 +144,7 @@ steps: | |||
| if [[ -z "$XCODE_PATH" ]]; then | |||
| echo "ERROR: No suitable Xcode version found for requested version ${ORIGINAL_VERSION}" | |||
There was a problem hiding this comment.
The error message claims 'ERROR' but the script now exits with success (0). This creates confusion about whether this is an actual error condition. If this is now an acceptable state, change the message to 'WARNING' or 'INFO' to match the exit code behavior.
| echo "ERROR: No suitable Xcode version found for requested version ${ORIGINAL_VERSION}" | |
| echo "WARNING: No suitable Xcode version found for requested version ${ORIGINAL_VERSION}" |
| skipAndroidCreateAvds: true | ||
| androidEmulatorApiLevel: ${{ parameters.version }} | ||
| skipXcode: ${{ or(eq(parameters.platform, 'android'), eq(parameters.platform, 'windows')) }} | ||
| skipXcode: ${{ or(eq(parameters.platform, 'android'), eq(parameters.platform, 'windows'), eq(parameters.platform, 'catalyst')) }} |
There was a problem hiding this comment.
The PR title contains 'testting' which should be 'testing'. While this doesn't affect the code, it's visible in the repository history.
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
### Description of Change Our maccatalyst uitests run in a macOS-14 still, the new provisioning script was failing with Exit code 1 when doesn t find Xcode 26.
Description of Change
Our maccatalyst uitests run in a macOS-14 still, the new provisioning script was failing with Exit code 1 when doesn t find Xcode 26.