-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[ci] MOVE to ACES dnceng #33723
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ci] MOVE to ACES dnceng #33723
Conversation
There was a problem hiding this 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 refactors the build and test infrastructure to improve macOS CI reliability and streamline build configuration logic. The changes primarily focus on migrating macOS CI jobs to a dedicated shared pool, consolidating build property management, and ensuring Xcode version checks are consistently skipped in CI environments.
Changes:
- Migrated macOS CI pools from Azure Pipelines hosted agents to the AcesShared pool with Tahoe image demands
- Refactored
Build.propsto separate pack-only, full build, and device test scenarios with centralized build property management - Updated integration tests to always skip Xcode version checks on macOS and simplified iOS test device configuration
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
eng/Build.props |
Reorganized project selection logic into distinct scenarios (pack-only, full build, device tests) with platform-specific build properties moved from pipeline scripts to centralized configuration |
eng/pipelines/arcade/stage-build.yml |
Removed explicit build properties from sln build command, now relying on Build.props for property management |
eng/pipelines/arcade/stage-integration-tests.yml |
Added SKIP_XCODE_VERSION_CHECK environment variable for all macOS jobs and updated iOS test device specification |
eng/pipelines/ci.yml |
Changed macOS pool configurations to use AcesShared pool with Tahoe image demands instead of Azure Pipelines hosted images |
eng/pipelines/device-tests.yml |
Removed Agent.OSVersion demands from iOS and MacCatalyst device test pools |
src/TestUtils/src/Microsoft.Maui.IntegrationTests/Utilities/TestEnvironment.cs |
Changed default value for SkipXcodeVersionCheck from false to true |
| envVariables: | ||
| IOS_TEST_DEVICE: ios-simulator-64_18.5 | ||
| SKIP_XCODE_VERSION_CHECK: 'true' | ||
| IOS_TEST_DEVICE: ios-simulator-64 |
Copilot
AI
Jan 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The iOS test device specification changed from ios-simulator-64_18.5 to ios-simulator-64, removing the iOS version. Please verify this change is documented in the relevant XML files in the /docs/ folders and that the behavior matches the intended feature description. This is a potentially breaking change for tests that rely on specific iOS simulator versions.
| <!-- Pack only: Microsoft.Maui.Packages --> | ||
| <ItemGroup Condition="'$(BuildDeviceTests)' != 'true' and '$(Pack)' == 'true'"> | ||
| <ProjectToBuild Include="$(RepoRoot)eng/Microsoft.Maui.Packages-mac.slnf" Condition="'$(OS)' != 'Windows_NT'" BuildInParallel="false"> | ||
| <AdditionalProperties>ValidateXcodeVersion=false</AdditionalProperties> |
Copilot
AI
Jan 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ValidateXcodeVersion=false property is duplicated across multiple ProjectToBuild items (lines 10, 18, 21). Consider extracting this as a common property group to reduce duplication and ensure consistent behavior across build scenarios.
src/TestUtils/src/Microsoft.Maui.IntegrationTests/Utilities/TestEnvironment.cs
Outdated
Show resolved
Hide resolved
fd4583f to
20cb0b6
Compare
This reverts commit 32a1c68.
This reverts commit 2486130.
20cb0b6 to
f6c12f5
Compare
|
/azp run maui-pr-devicetests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
### Description of Change This pull request updates the build and test infrastructure to improve platform-specific builds, streamline build conditions, and enhance macOS integration test reliability. The changes reorganize project selection logic in `Build.props`, update build pipeline pool configurations to use a shared macOS pool, and adjust environment variable handling for integration tests. **Build system and pipeline improvements:** * Refactored `eng/Build.props` to separate build logic for pack-only, full build, and device test scenarios, adding more precise conditions and additional build properties for macOS and Windows builds. * Updated Azure DevOps pipeline pool configurations in `eng/pipelines/ci.yml` to use the `AcesShared` pool with specific demands for macOS jobs, replacing previous references to `Azure Pipelines` and hosted images. [[1]](diffhunk://#diff-07a82fab001c5b336d89cb64918f0a88b6b66f03d88d67e0fa13c65202455120L77-R79) [[2]](diffhunk://#diff-07a82fab001c5b336d89cb64918f0a88b6b66f03d88d67e0fa13c65202455120L100-R113) * Removed the `Agent.OSVersion` demand for macOS device test pools in `eng/pipelines/device-tests.yml`, simplifying agent selection. [[1]](diffhunk://#diff-d2d1c388a0fb3196dbfcdab96421bc88336637a3d44480c96717f92d000facaeL74) [[2]](diffhunk://#diff-d2d1c388a0fb3196dbfcdab96421bc88336637a3d44480c96717f92d000facaeL83) **Integration test and environment variable handling:** * Changed integration test pipeline logic in `eng/pipelines/arcade/stage-integration-tests.yml` to always set `SKIP_XCODE_VERSION_CHECK=true` for macOS jobs, and refactored the logic for setting `IOS_TEST_DEVICE` to be more precise for iOS test categories. * Updated `TestEnvironment.SkipXcodeVersionCheck` in `TestEnvironment.cs` to always return `true` (unless overridden by environment variable), ensuring Xcode version checks are always skipped locally and in CI. **Build script adjustments:** * Removed explicit build properties from the Microsoft.Maui.sln build command in the arcade build pipeline, relying on the new logic in `Build.props` for property management.
Description of Change
This pull request updates the build and test infrastructure to improve platform-specific builds, streamline build conditions, and enhance macOS integration test reliability. The changes reorganize project selection logic in
Build.props, update build pipeline pool configurations to use a shared macOS pool, and adjust environment variable handling for integration tests.Build system and pipeline improvements:
eng/Build.propsto separate build logic for pack-only, full build, and device test scenarios, adding more precise conditions and additional build properties for macOS and Windows builds.eng/pipelines/ci.ymlto use theAcesSharedpool with specific demands for macOS jobs, replacing previous references toAzure Pipelinesand hosted images. [1] [2]Agent.OSVersiondemand for macOS device test pools ineng/pipelines/device-tests.yml, simplifying agent selection. [1] [2]Integration test and environment variable handling:
eng/pipelines/arcade/stage-integration-tests.ymlto always setSKIP_XCODE_VERSION_CHECK=truefor macOS jobs, and refactored the logic for settingIOS_TEST_DEVICEto be more precise for iOS test categories.TestEnvironment.SkipXcodeVersionCheckinTestEnvironment.csto always returntrue(unless overridden by environment variable), ensuring Xcode version checks are always skipped locally and in CI.Build script adjustments:
Build.propsfor property management.