[release/10.0.1xx] Update to use stable Xcode 26.6 - #25851
Conversation
Co-authored-by: dalexsoto <204671+dalexsoto@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
There was a problem hiding this comment.
Pull request overview
Updates the release/10.0.1xx pipeline/tooling to target stable Xcode 26.6 and improves CI reliability by routing jobs to the ACES shared pool and ensuring Xcode selection is consistently captured after provisioning.
Changes:
- Bump required Xcode version to 26.6 and make Xcode developer root overrideable via
configure.inc/./configure --xcode=.... - Add
useACESplumbing across build/api-diff/test pipeline templates to run workloads on the ACES shared pool. - Improve CI robustness by forwarding VM detection into test processes and adding CI ignores for VM- and network-timeout-related flakiness.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/devops/automation/templates/variables/common.yml | Adds documented ACES shared-pool variables (pool name, image, URL) and explains useACES wiring. |
| tools/devops/automation/templates/tests/stage.yml | Adds useACES parameter and switches simulator-test jobs to ACES pool when enabled (also sets VM gating variable). |
| tools/devops/automation/templates/tests/build.yml | Moves ./configure to after provisioning and passes --xcode=$(xcode-select -p) to avoid baking the wrong Xcode. |
| tools/devops/automation/templates/tests-stage.yml | Threads useACES through the higher-level tests stage template. |
| tools/devops/automation/templates/pipelines/run-tests-pipeline.yml | Adds a useACES pipeline parameter and passes it into tests-stage.yml. |
| tools/devops/automation/templates/pipelines/api-diff-pipeline.yml | Adds a useACES parameter and passes it into the API diff stage template. |
| tools/devops/automation/templates/main-stage.yml | Adds useACES parameter and forwards it into the build stage template. |
| tools/devops/automation/templates/build/build.yml | Ensures xcode-select is valid, exports Xcode env vars, and runs ./configure --xcode=... in CI build jobs. |
| tools/devops/automation/templates/build/build-stage.yml | Adds ACES pool switching for the main build job. |
| tools/devops/automation/templates/build/build-mac-tests-stage.yml | Adds ACES pool switching for the macOS test-build job. |
| tools/devops/automation/templates/build/api-diff-stage.yml | Adds ACES pool switching for the API diff job. |
| tools/devops/automation/templates/api-diff-stage.yml | Threads useACES into the API diff stage template. |
| tools/devops/automation/run-pr-api-diff.yml | Enables useACES: true for PR API diff runs. |
| tools/devops/automation/run-post-pr-build-tests.yml | Enables useACES: true for post-PR simulator tests. |
| tools/devops/automation/run-post-ci-build-tests.yml | Enables useACES: true for post-CI simulator tests. |
| tools/devops/automation/run-ci-api-diff.yml | Enables useACES: true for CI API diff runs. |
| tools/devops/automation/build-pull-request.yml | Enables useACES: true for PR builds. |
| tools/devops/automation/build-pipeline.yml | Enables useACES: true for CI builds (with comment indicating it can be flipped). |
| tools/common/SdkVersions.cs | Updates the reported Xcode version constant to 26.6. |
| tests/xharness/Jenkins/TestVariationsFactory.cs | Disables x64 variations on ACES (based on an env var) to avoid unsupported configurations. |
| tests/xharness/AppRunner.cs | Forwards VM_VENDOR into simulator processes so VM-gated tests can ignore correctly. |
| tests/monotouch-test/VideoToolbox/VTMotionEstimationSessionTest.cs | Adds VM-gating for macOS/MacCatalyst where virtualization breaks functionality. |
| tests/monotouch-test/VideoToolbox/VTCompressionSessionTests.cs | Adds VM-gating for macOS/MacCatalyst where virtualization breaks functionality. |
| tests/monotouch-test/Metal/MTLDeviceTests.cs | Adds VM-gating to avoid running Metal-dependent assertions on VM-backed bots. |
| tests/monotouch-test/AudioToolbox/AudioQueueTest.cs | Adds VM-gating to avoid running AudioToolbox-dependent assertions on VM-backed bots. |
| tests/linker/link sdk/LinkSdkRegressionTest.cs | Makes special-folder assertions tolerant to missing user dirs specifically on CI VMs. |
| tests/introspection/ApiTypoTest.cs | Adjusts platform skip lists for typo exceptions (platform availability alignment). |
| tests/common/TestRuntime.cs | Makes AssertNotVirtualMachine VM_VENDOR-based for all platforms and adds HttpClient-timeout ignore helper. |
| system-dependencies.sh | Reads Xcode developer root from configure.inc/env, improves simulator-runtime deletion logging/timeout, and adds ACES-specific branch. |
| Make.config | Updates Xcode version/URL, allows configure.inc to override Xcode root, and ensures Build.props regenerates when configure.inc changes. |
| configure | Adds --xcode* options that write XCODE_DEVELOPER_ROOT to configure.inc with validation. |
| # The ACES pool is a virtual-machine pool; expose VM_VENDOR so tests | ||
| # gated by TestRuntime.AssertNotVirtualMachine get ignored there. | ||
| ${{ if parameters.useACES }}: | ||
| VM_VENDOR: ACES |
| ${{ if parameters.useACES }}: | ||
| pool: | ||
| os: macOS | ||
| name: $(CIBuildPoolACES) | ||
| demands: | ||
| - ImageOverride -equals $(CIBuildPoolACESImage) |
| RUN_MAC_TESTS: $[ stageDependencies.configure_build.configure.outputs['decisions.RUN_MAC_TESTS'] ] | ||
| condition: ne(stageDependencies.configure_build.configure.outputs['decisions.RUN_MAC_TESTS'],'') |
| ${{ if parameters.useACES }}: | ||
| pool: | ||
| name: $(CIBuildPoolACES) | ||
| demands: | ||
| - ImageOverride -equals $(CIBuildPoolACESImage) | ||
| ${{ else }}: |
| public static void AssertNotVirtualMachine () | ||
| { | ||
| #if MONOMAC || __MACCATALYST__ | ||
| // enviroment variable set by the CI when running on a VM |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ [PR Build #01ec25e] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ [PR Build #01ec25e] Build passed (Build macOS tests) ✅Pipeline on Agent |
|
🔥 Failed to compare API and create generator diff 🔥 Error: The system requirements for the hash to compare against (ce56202�(B) are different than for the current hash. Comparison is currently not supported in this scenario.�(B Pipeline on Agent |
✅ [PR Build #01ec25e] Build passed (Build packages) ✅Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build #01ec25e] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 167 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Monterey (12): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
No description provided.