Bring XHarness part of Helix SDK from main #8258
Merged
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.
Backport of XHarness related functionality of Helix SDK from
main
to therelease/6.0
branch.Fixes #8253
Related to https://github.com/dotnet/core-eng/issues/14888
Context
As part of the runtime-staging pipeline in dotnet/runtime, we run Apple and Android simulator tests. We also run device tests in the PR build of dotnet/arcade.
These tests are relying on the Helix on-prem infrastructure using the XHarness submodule of Helix SDK.
As we improve the SDK in how we work with the Apple/Android infrastructure, we make the test runs more resilient and careful with how we treat the simulators/devices.
Motivation
Last week, we have rotated Apple signing certificates in the Helix infrastructure which broke Arcade's
release/6.0
PR build (see #8253).This backport brings the latest shape of the XHarness related part of Helix SDK so that we can keep using the infrastructure from both
main
andrelease/6.0
branches.It is probably easier to copy the whole XHarness functionality as there were no breaking changes and keep the branches in sync than to try fixing the issue only and diverging.
Bringing over all of the changes will make
release/6.0
tests more stable, will start collecting useful telemetry and will keep the infra in a better shape.Customer Impact
This code is not part of the product. It is used by the test infrastructure to run unit tests on Apple and Android simulators in the runtime-staging pipeline. We run
iOSSimulator-x64
,tvOSSimulator-x64
,Android-x86
andAndroid-x64
BCL tests on therelease/6.0
branch of dotnet/runtime.Testing
The code we're bringing over has almost full unit test coverage + we run E2E integration tests as part of the Arcade PR build (that is run in this PR).
Risk
Low. Affected is only the
runtime-staging
test build which will be immediately validated once changes flow to dotnet/runtime'sreleas/6.0
.Changes in Helix SDK are minimal and only "additions" so no other test infrastructure using Helix is affected apart from XHarness.