4616a30b74
This is the initial check-in of work that enables running WinUI tests in Helix. There are some things that are missing that will come in a later PR. I wanted to get this work merged to master sooner so that we can start getting things up and running. Not in this PR: * Scheduling tests on RS1 - RS5 machines is not yet enabled. Currently all tests are running on the Windows.10.Amd64.Open Helix queue which is a Windows Server 2016 RS1 queue. * Release configuration and/or x64 target platform. Currently only x86/debug is enabled. * Not all tests are enabled yet such as IXMP tests, WPF hosting tests, NuGet package tests, Framework Package tests. All of the above will come soon after this PR is completed. **Details:** Helix is a cloud hosted test execution environment which is accessed via the Arcade SDK. More details: * [Arcade](https://github.com/dotnet/arcade) * [Helix](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.Helix/Sdk) WinUI tests are scheduled in Helix by the Azure DevOps Pipeline: RunHelixTests.yml. The workflow is as follows: 1. NuGet Restore is called on the packages.config in this directory. This downloads any runtime dependencies that are needed to run tests. 2. PrepareHelixPayload.ps1 is called. This copies the necessary files from various locations into a Helix payload directory. This directory is what will get sent to the Helix machines. 3. RunTestsInHelix.proj is executed. This proj has a dependency on [Microsoft.DotNet.Helix.Sdk](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.Helix/Sdk) which it uses to publish the Helix payload directory and to schedule the Helix Work Items. The WinUI tests are parallelized into multiple Helix Work Items. 4. Each Helix Work Item calls runtests.cmd with a specific query to pass to [TAEF](https://docs.microsoft.com/en-us/windows-hardware/drivers/taef/) which runs the tests. 5. TAEF produces logs in WTT format. Helix is able to process logs in XUnit format. We run ConvertWttLogToXUnit.ps1 to convert the logs into the necessary format. 6. RunTestsInHelix.proj has EnableAzurePipelinesReporter set to true. This allows the XUnit formatted test results to be reported back to the Azure DevOps Pipeline. Example run: https://dev.azure.com/ms/microsoft-ui-xaml/_build/results?buildId=730 Full Atlas test pass: https://microsoft.visualstudio.com/WinUI/_build/results?buildId=13389551&view=ms.vss-test-web.test-result-details |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
build | ||
dev | ||
docs | ||
idl | ||
manifest | ||
test | ||
tools | ||
winrt | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
Build.cmd | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
CustomInlineTasks.targets | ||
CustomTasks.sln | ||
DevCmd.cmd | ||
Directory.Build.props | ||
LICENSE | ||
MUXControls.sln | ||
ProjectConfigurations.props | ||
README.md | ||
RunTests.ps1 | ||
SdkVersion.props | ||
custom.props | ||
dirs | ||
environment.props | ||
mux.controls.props | ||
nuget.config |
README.md
Windows UI Library
The Windows UI Library (WinUI) provides official native Microsoft UI controls and features for Windows UWP apps.
WinUI is the easiest way to build great Fluent Design experiences for Windows.
WinUI can be used in any Windows 10 UWP XAML app, or in a Xamarin.Forms app running on Windows 10 using native view embedding.
Using WinUI
You can download and use WinUI packages in your app using the NuGet package manager: see the Getting Started with the Windows UI Library page for more information.
Packages
NuGet Package | Build Status | Latest Versions |
---|---|---|
Microsoft.UI.Xaml Controls and Fluent Design for UWP apps |
|
|
Microsoft.UI.Xaml.Core.Direct Low-level APIs for middleware components |
You can also build a WinUI package yourself from source. See Contributing to the Windows UI Library for more information on building and contributing to WinUI.
Documentation
WinUI usage documentation can be found here:
https://docs.microsoft.com/uwp/toolkits/winui
Contributing to WinUI
The WinUI team welcomes feedback and contributions!
For information on how to contribute please see Contributing to the Windows UI Library.
WinUI features
Benefits
The WinUI Library provides some useful benefits when building apps for Windows 10:
-
Helps you stay up to date
WinUI helps keep your app up to date with the latest versions of key controls and features of UWP XAML and the Fluent Design System -
Provides backward compatibility
WinUI is backward-compatible with a wide range of Windows 10 versions: you can start building and shipping apps with new XAML features immediately as soon as they're released, even if your users aren't on the latest version of Windows 10 -
Makes it simpler to build version adaptive apps
You don't need version checks or conditional XAML markup to use WinUI controls or features: WinUI automatically adapts to the user's OS version
Version support
The Microsoft.UI.Xaml NuGet package requires your project to have TargetPlatformVersion >= 10.0.17134.0 and TargetPlatformMinVersion >= 10.0.14393.0 when building.
Your app's users can be on any of the following supported Windows versions:
- Windows Insider Previews
- October 2018 Update (17763)
- April 2018 Update (17134)
- Fall Creators Update (16299)
- Creators Update (15063)
- Anniversary Update (14393)
Some features may have a reduced or slightly different user experience on older versions, particularly on builds before 15063. This should not impact overall usability.
Contents
The Microsoft.UI.Xaml 2.0 stable package includes:
- Fluent Design control styles for all XAML controls (from both WinUI and the standard Windows 10 SDK)
- Fluent materials and styles including Fluent Acrylic and Fluent Reveal
- Many new and popular controls like ColorPicker, MenuBar, NavigationView, ParallaxView, PersonPicture, RatingControl, RefreshContainer, SplitButton, SwipeControl, and TreeView
Prerelease Microsoft.UI.Xaml packages also include previews of features and controls that we are still working on, like:
The Microsoft.UI.Xaml.Core.Direct package includes:
- XamlDirect and related APIs to improve performance for middleware components
Roadmap
For info on the WinUI release schedule and high level plans please see the Windows UI Library Roadmap.
Data/Telemetry
This project collects usage data and sends it to Microsoft to help improve our products and services. Read Microsoft's privacy statement to learn more.
For more information on telemetry implementation see the developer guide.