[ci] Add support for running device and uitests on internal#33494
Merged
[ci] Add support for running device and uitests on internal#33494
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR enhances the device test and UI test pipelines to properly support both internal (dnceng) and public (dnceng-public) build environments by introducing separate pool configurations and Helix access token handling for internal builds.
Changes:
- Adds distinct internal and public pool parameters for all platforms (Android, iOS, macOS, Windows)
- Introduces conditional logic to select appropriate pools and pass Helix access tokens based on
System.TeamProjectvalue - Updates Helix queue selection to route internal builds to internal queues and public builds to public queues
- Increases pipeline job timeouts to accommodate longer test execution times
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
eng/pipelines/ci-uitests.yml |
Duplicates pool parameters with Internal/Public suffixes and adds conditional pool selection logic |
eng/pipelines/ci-device-tests.yml |
Duplicates pool parameters with Internal/Public suffixes, adds Helix access token variable group for internal builds, and adds conditional pool selection |
eng/pipelines/arcade/stage-device-tests.yml |
Adds HelixAccessToken parameter, increases job timeouts, and adds conditional HelixInternal property passing to Helix |
eng/helix_xharness.proj |
Adds conditional Helix queue selection based on HelixInternal property to route tests to internal or public queues |
Member
Author
Member
Author
|
/rebase |
38633e9 to
29eaa59
Compare
PureWeen
approved these changes
Jan 13, 2026
PureWeen
added a commit
that referenced
this pull request
Jan 14, 2026
Resolve conflicts with PR #33494 (internal queue support): - Added Windows queues for both public and internal Helix - Combined pool selection logic with Windows test parameters - Removed old Windows device tests template (now using Helix)
kubaflo
pushed a commit
to kubaflo/maui
that referenced
this pull request
Jan 16, 2026
…3494) ### Description of Change Add support to build internal device tests and uitests pipelines This pull request updates the device test pipelines and Helix configuration to better distinguish between internal and public builds. The changes introduce separate build and test pools for internal and public environments, add support for passing Helix access tokens for internal runs, and update queue and argument selection logic to ensure tests are sent to the appropriate Helix queues. Additionally, pipeline timeouts are increased to accommodate longer-running jobs. Key changes include: **Pipeline Pool and Token Configuration:** * Added separate build and test pool parameters for internal and public environments in both `ci-device-tests.yml` and `ci-uitests.yml`, enabling the pipelines to select the correct pools based on whether the build is internal or public. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bR50-R79) [[2]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL62-R94) [[3]](diffhunk://#diff-f0d1c4172dd9c907f376bbf9165bb7866553b059e26c8519320d65b9d4e673e3L63-R137) * Introduced logic to include the Helix access token variable group for internal builds, and added a `HelixAccessToken` parameter to device test stages. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bR50-R79) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bR49-R51) **Helix Queue and Argument Selection:** * Updated `helix_xharness.proj` to select different Helix target queues for internal and public builds, using the new `HelixInternal` property. * Modified `stage-device-tests.yml` to pass the `HelixInternal` property and `HelixAccessToken` to Helix jobs based on whether the build is internal or public, ensuring tests are routed to the correct queues. [[1]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL148-R155) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL198-R209) [[3]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL246-R261) [[4]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL349-R368) **Pipeline Timeout Adjustments:** * Increased job timeouts for device test build and run stages to allow for longer test execution, reducing the risk of premature timeouts. [[1]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL74-R77) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL179-R186) [[3]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL275-R290) **Pipeline Template Usage:** * Updated stage and job templates to use the new pool parameters and conditional logic, ensuring the correct pools and tokens are applied throughout the pipelines. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL85-R119) [[2]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL105-R141) [[3]](diffhunk://#diff-f0d1c4172dd9c907f376bbf9165bb7866553b059e26c8519320d65b9d4e673e3L106-R161) These changes collectively improve the reliability and security of the device test pipelines by ensuring internal and public builds use the appropriate resources and credentials.
simonrozsival
pushed a commit
that referenced
this pull request
Jan 16, 2026
### Description of Change Add support to build internal device tests and uitests pipelines This pull request updates the device test pipelines and Helix configuration to better distinguish between internal and public builds. The changes introduce separate build and test pools for internal and public environments, add support for passing Helix access tokens for internal runs, and update queue and argument selection logic to ensure tests are sent to the appropriate Helix queues. Additionally, pipeline timeouts are increased to accommodate longer-running jobs. Key changes include: **Pipeline Pool and Token Configuration:** * Added separate build and test pool parameters for internal and public environments in both `ci-device-tests.yml` and `ci-uitests.yml`, enabling the pipelines to select the correct pools based on whether the build is internal or public. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bR50-R79) [[2]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL62-R94) [[3]](diffhunk://#diff-f0d1c4172dd9c907f376bbf9165bb7866553b059e26c8519320d65b9d4e673e3L63-R137) * Introduced logic to include the Helix access token variable group for internal builds, and added a `HelixAccessToken` parameter to device test stages. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bR50-R79) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bR49-R51) **Helix Queue and Argument Selection:** * Updated `helix_xharness.proj` to select different Helix target queues for internal and public builds, using the new `HelixInternal` property. * Modified `stage-device-tests.yml` to pass the `HelixInternal` property and `HelixAccessToken` to Helix jobs based on whether the build is internal or public, ensuring tests are routed to the correct queues. [[1]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL148-R155) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL198-R209) [[3]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL246-R261) [[4]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL349-R368) **Pipeline Timeout Adjustments:** * Increased job timeouts for device test build and run stages to allow for longer test execution, reducing the risk of premature timeouts. [[1]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL74-R77) [[2]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL179-R186) [[3]](diffhunk://#diff-1701856ca68fbbb9e8a01b54e77e4f16271e630dee939e507f9133e4b9e7f46bL275-R290) **Pipeline Template Usage:** * Updated stage and job templates to use the new pool parameters and conditional logic, ensuring the correct pools and tokens are applied throughout the pipelines. [[1]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL85-R119) [[2]](diffhunk://#diff-3c01e959fbddcc83fed139e6855a1fb2211a82deff79904912c021d96e433d2bL105-R141) [[3]](diffhunk://#diff-f0d1c4172dd9c907f376bbf9165bb7866553b059e26c8519320d65b9d4e673e3L106-R161) These changes collectively improve the reliability and security of the device test pipelines by ensuring internal and public builds use the appropriate resources and credentials.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Change
Add support to build internal device tests and uitests pipelines
This pull request updates the device test pipelines and Helix configuration to better distinguish between internal and public builds. The changes introduce separate build and test pools for internal and public environments, add support for passing Helix access tokens for internal runs, and update queue and argument selection logic to ensure tests are sent to the appropriate Helix queues. Additionally, pipeline timeouts are increased to accommodate longer-running jobs.
Key changes include:
Pipeline Pool and Token Configuration:
ci-device-tests.ymlandci-uitests.yml, enabling the pipelines to select the correct pools based on whether the build is internal or public. [1] [2] [3]HelixAccessTokenparameter to device test stages. [1] [2]Helix Queue and Argument Selection:
helix_xharness.projto select different Helix target queues for internal and public builds, using the newHelixInternalproperty.stage-device-tests.ymlto pass theHelixInternalproperty andHelixAccessTokento Helix jobs based on whether the build is internal or public, ensuring tests are routed to the correct queues. [1] [2] [3] [4]Pipeline Timeout Adjustments:
Pipeline Template Usage:
These changes collectively improve the reliability and security of the device test pipelines by ensuring internal and public builds use the appropriate resources and credentials.