Skip to content
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

Add Helix project and supporting targets #4847

Merged
merged 2 commits into from
Jul 14, 2023

Conversation

jander-msft
Copy link
Member

@jander-msft jander-msft commented Jul 11, 2023

Summary

These changes enable the use of Helix for executing tests on a multitude of platforms and architectures. Helix testing is enabled through the use of the /eng/helix/Helix.proj project and can be executed on the command line using build.cmd/sh -projects ./eng/helix/Helix.proj -test -skipnative -skipmanaged after a successful full build of both native and managed components.

Details
  • The /eng/helix/Helix.proj project gathers the executable work item information (e.g. dotnet test command line) from each participating project (e.g. test projects).
  • These work items (e.g. tests) are executed in a set of queues. There are several queues that are employed to get broad coverage of scenarios where .NET Monitor is used; the set of queues on which the work items are executed are determined by the build target environment e.g. a Windows x64 host can launch arm64, x64, and x86 tests on Windows queues depending on which target architecture was built.
  • Test results are automatically uploaded to Azure Pipelines if this project is invoked within an Azure Pipelines build (no work was done here since this is automatically supported by the Helix SDK).
  • All existing enabled tests are runnable and succeed through this project EXCEPT for the Azure blob storage tests that require Azurite to be installed; these tests are automatically skipped since Azurite is not initialized and the environment variable to indicate they should not be skipped is not applied. Enabling this is still a work in progress.
  • The pipelines have not been update to use this project yet; that will come as a separate PR.

Example build where E2E testing via Helix is enabled: https://dev.azure.com/dnceng/internal/_build/results?buildId=2218286&view=results

Release Notes Entry

@jander-msft jander-msft requested a review from a team as a code owner July 11, 2023 00:51
@ghost ghost added the needs-review label Jul 11, 2023
@jander-msft jander-msft added the testing Test work item label Jul 11, 2023
@jander-msft jander-msft changed the title Add Helix project and supporting targets and scripts Add Helix project and supporting targets Jul 12, 2023
src/Tests/Helix.targets Outdated Show resolved Hide resolved
@ghost ghost removed the needs-review label Jul 14, 2023
@jander-msft jander-msft merged commit 03fd89e into dotnet:main Jul 14, 2023
30 checks passed
@jander-msft jander-msft deleted the helix-project branch July 14, 2023 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing Test work item
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants