Skip to content

[ci] Add support for running device and uitests on internal#33494

Merged
rmarinho merged 9 commits intomainfrom
fix-uitests-pipeline-internal
Jan 14, 2026
Merged

[ci] Add support for running device and uitests on internal#33494
rmarinho merged 9 commits intomainfrom
fix-uitests-pipeline-internal

Conversation

@rmarinho
Copy link
Member

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] [2] [3]
  • Introduced logic to include the Helix access token variable group for internal builds, and added a HelixAccessToken parameter to device test stages. [1] [2]

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] [2] [3] [4]

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] [2] [3]

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] [2] [3]

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.

Copilot AI review requested due to automatic review settings January 13, 2026 11:07
@rmarinho rmarinho added area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions area-testing Unit tests, device tests testing-infrastructure Issue relating to testing infrastructure labels Jan 13, 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

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.TeamProject value
  • 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

@rmarinho rmarinho changed the title [ci] Fix uitests pipeline internal [ci] Add support for running device and uitests on internal Jan 13, 2026
@rmarinho
Copy link
Member Author

@dotnet dotnet deleted a comment from azure-pipelines bot Jan 13, 2026
@rmarinho
Copy link
Member Author

/rebase

@github-actions github-actions bot force-pushed the fix-uitests-pipeline-internal branch from 38633e9 to 29eaa59 Compare January 13, 2026 19:05
@rmarinho rmarinho merged commit aad0057 into main Jan 14, 2026
25 of 28 checks passed
@rmarinho rmarinho deleted the fix-uitests-pipeline-internal branch January 14, 2026 11:20
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.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-infrastructure CI, Maestro / Coherency, upstream dependencies/versions area-testing Unit tests, device tests testing-infrastructure Issue relating to testing infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants