From d6b7986c81ba99f72114fc258ca32dc4f34c85ed Mon Sep 17 00:00:00 2001 From: kmahone Date: Thu, 11 Aug 2022 15:45:25 -0700 Subject: [PATCH 01/40] fix areaPath --- .config/tsaoptions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/tsaoptions.json b/.config/tsaoptions.json index e885519048..d776cfa82a 100644 --- a/.config/tsaoptions.json +++ b/.config/tsaoptions.json @@ -1,7 +1,7 @@ { "instanceUrl": "https://microsoft.visualstudio.com", "projectName": "os", - "areaPath": "OS\\WDX\\DXP\\WinDev\\Controls", + "areaPath": "OS\\WDX\\DXP\\OWL (Open Windows pLatform)\\Controls", "iterationPath": "OS", "notificationAliases": [ "uxpct@microsoft.com" ], "ignoreBranchName": true, From 2e6550e1d8818857ac112c3a26fd6cc730abf2d1 Mon Sep 17 00:00:00 2001 From: kmahone Date: Thu, 11 Aug 2022 17:09:31 -0700 Subject: [PATCH 02/40] add token to vpack task --- .../AzurePipelinesTemplates/MUX-PushCBSVpack-Job.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build/AzurePipelinesTemplates/MUX-PushCBSVpack-Job.yml b/build/AzurePipelinesTemplates/MUX-PushCBSVpack-Job.yml index c474d16e64..663709e3ba 100644 --- a/build/AzurePipelinesTemplates/MUX-PushCBSVpack-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-PushCBSVpack-Job.yml @@ -73,6 +73,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack Microsoft.UI.Xaml' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\WinUIVpack' githubToken: $(WinUI2GitHubToken) @@ -82,6 +84,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack MicrosoftUIXamlInbox_x64' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\CBS\x64' githubToken: $(WinUI2GitHubToken) @@ -91,6 +95,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack MicrosoftUIXamlInbox_x86' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\CBS\x86' githubToken: $(WinUI2GitHubToken) @@ -100,6 +106,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack MicrosoftUIXamlInbox_arm' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\CBS\arm' githubToken: $(WinUI2GitHubToken) @@ -109,6 +117,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack MicrosoftUIXamlInbox_arm64' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\CBS\arm64' githubToken: $(WinUI2GitHubToken) @@ -118,6 +128,8 @@ jobs: - task: PkgESVPack@12 displayName: 'Push VPack MicrosoftUIXamlInboxWinmd' condition: eq(variables['PublishVpack'], 'true') + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: sourceDirectory: '$(publishDir)\CBS\winmd' githubToken: $(WinUI2GitHubToken) From c5bc1b8023de89e3267c3aa7e6b4ef7ad586ff0e Mon Sep 17 00:00:00 2001 From: kmahone Date: Thu, 11 Aug 2022 17:11:39 -0700 Subject: [PATCH 03/40] update version to 2.8.1 --- version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.props b/version.props index 18dae2dfb9..c08673b101 100644 --- a/version.props +++ b/version.props @@ -4,7 +4,7 @@ 2 8 - 0 + 1 0 0 From 5ee42356e62e039b0a71398d7e90cc0e365fabf2 Mon Sep 17 00:00:00 2001 From: kmahone Date: Fri, 12 Aug 2022 10:09:09 -0700 Subject: [PATCH 04/40] Import .props to NugetPackageTestAppCX --- .../NugetPackageTestAppCX/NugetPackageTestAppCX.vcxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/MUXControlsReleaseTest/NugetPackageTestAppCX/NugetPackageTestAppCX.vcxproj b/test/MUXControlsReleaseTest/NugetPackageTestAppCX/NugetPackageTestAppCX.vcxproj index 1ba9a1dd06..10d4e67362 100644 --- a/test/MUXControlsReleaseTest/NugetPackageTestAppCX/NugetPackageTestAppCX.vcxproj +++ b/test/MUXControlsReleaseTest/NugetPackageTestAppCX/NugetPackageTestAppCX.vcxproj @@ -1,6 +1,7 @@  + @@ -248,6 +249,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + @@ -255,6 +257,7 @@ + From 3b41a5e9a832337ea1710cf53db28608855bc4f9 Mon Sep 17 00:00:00 2001 From: Brian Ostergren Date: Tue, 29 Nov 2022 17:41:46 -0800 Subject: [PATCH 05/40] CP Adjust apiset fallback for user32 dependencies in WebView2 (#7977) commit 80a4bf4cc287065337cbe93410c8d52e2554cdfe --- dev/WebView2/WebView2.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dev/WebView2/WebView2.cpp b/dev/WebView2/WebView2.cpp index 143a209c4a..ff20608a6a 100644 --- a/dev/WebView2/WebView2.cpp +++ b/dev/WebView2/WebView2.cpp @@ -29,7 +29,13 @@ static constexpr wstring_view s_error_cwv2_not_present_closed{ L"Failed because WebView2::WebView2() { - if (auto user32module = GetModuleHandleW(L"user32.dll")) + auto user32module = GetModuleHandleW(L"ext-ms-win-rtcore-webview-l1-1-0.dll"); + if (!user32module) + { + user32module = GetModuleHandleW(L"user32.dll"); + } + + if (user32module) { m_fnClientToScreen = reinterpret_cast(GetProcAddress(user32module, "ClientToScreen")); m_fnSendMessageW = reinterpret_cast(GetProcAddress(user32module, "SendMessageW")); From feb174cea0cc49c6a3977058e9270b70384d138a Mon Sep 17 00:00:00 2001 From: Keith Mahoney <41657372+kmahone@users.noreply.github.com> Date: Mon, 10 Oct 2022 18:08:41 -0700 Subject: [PATCH 06/40] CP Update AzDO area path in tsaoptions (#7802) commit cb398934eb0d0a6812df0dca45dcab67fe466cb9 --- .config/tsaoptions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/tsaoptions.json b/.config/tsaoptions.json index d776cfa82a..05b370ebb7 100644 --- a/.config/tsaoptions.json +++ b/.config/tsaoptions.json @@ -1,7 +1,7 @@ { "instanceUrl": "https://microsoft.visualstudio.com", "projectName": "os", - "areaPath": "OS\\WDX\\DXP\\OWL (Open Windows pLatform)\\Controls", + "areaPath": "OS\\Windows Client and Services\\ADEPT\\OWL (Open Windows pLatform)\\Controls", "iterationPath": "OS", "notificationAliases": [ "uxpct@microsoft.com" ], "ignoreBranchName": true, From 4c6ff650c1729dd8a7d1a71bee6f9f9c86ae3811 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Thu, 15 Dec 2022 16:19:23 -0800 Subject: [PATCH 07/40] Update version.props --- version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.props b/version.props index c08673b101..a8b4c0cb5d 100644 --- a/version.props +++ b/version.props @@ -4,7 +4,7 @@ 2 8 - 1 + 2 0 0 From 73244949f06dcbfd0586bb01fdcf9c9c3a5be017 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Tue, 14 Mar 2023 10:12:21 -0700 Subject: [PATCH 08/40] Fix BreadcrumbBar KeyDown Handling (#8272) * Stop marking events as handled when no action is taken * Prevent focus move on Up and Down arrow (cherry picked from commit eceb90f4a80c7a0eedf34bf5804973cd886895fa) --- dev/Breadcrumb/BreadcrumbBar.cpp | 75 +------------------------------- dev/Breadcrumb/BreadcrumbBar.h | 1 - 2 files changed, 1 insertion(+), 75 deletions(-) diff --git a/dev/Breadcrumb/BreadcrumbBar.cpp b/dev/Breadcrumb/BreadcrumbBar.cpp index bfd9f5ab1b..36b109013b 100644 --- a/dev/Breadcrumb/BreadcrumbBar.cpp +++ b/dev/Breadcrumb/BreadcrumbBar.cpp @@ -450,7 +450,7 @@ bool BreadcrumbBar::MoveFocus(int indexIncrement) { auto focusedIndex = itemsRepeater.GetElementIndex(focusedElement); - if (focusedIndex >= 0) + if (focusedIndex >= 0 && indexIncrement != 0) { focusedIndex += indexIncrement; auto const itemCount = itemsRepeater.ItemsSourceView().Count(); @@ -520,37 +520,6 @@ bool BreadcrumbBar::MoveFocusNext() return MoveFocus(movementNext); } -// If we haven't handled the key yet and the original source was the first(for up and left) -// or last(for down and right) element in the repeater we need to handle the key so -// BreadcrumbBarItem doesn't, which would result in the behavior. -bool BreadcrumbBar::HandleEdgeCaseFocus(bool first, const winrt::IInspectable& source) -{ - if (auto const& itemsRepeater = m_itemsRepeater.get()) - { - if (auto const& sourceAsUIElement = source.try_as()) - { - auto const index = [first, itemsRepeater]() - { - if (first) - { - return 0; - } - if (auto const& itemsSourceView = itemsRepeater.ItemsSourceView()) - { - return itemsSourceView.Count() - 1; - } - return -1; - }(); - - if (itemsRepeater.GetElementIndex(sourceAsUIElement) == index) - { - return true; - } - } - } - return false; -} - winrt::FindNextElementOptions BreadcrumbBar::GetFindNextElementOptions() { auto const& findNextElementOptions = winrt::FindNextElementOptions{}; @@ -581,7 +550,6 @@ void BreadcrumbBar::OnChildPreviewKeyDown(const winrt::IInspectable&, const winr return; } } - args.Handled(HandleEdgeCaseFocus(false, args.OriginalSource())); } // Moving to previous element else if ((flowDirectionIsLTR && keyIsLeft) || (!flowDirectionIsLTR && keyIsRight)) @@ -600,47 +568,6 @@ void BreadcrumbBar::OnChildPreviewKeyDown(const winrt::IInspectable&, const winr return; } } - args.Handled(HandleEdgeCaseFocus(true, args.OriginalSource())); - } - else if (args.Key() == winrt::VirtualKey::Down) - { - if (args.OriginalKey() != winrt::VirtualKey::GamepadDPadDown) - { - if (winrt::FocusManager::TryMoveFocus(winrt::FocusNavigationDirection::Right, GetFindNextElementOptions())) - { - args.Handled(true); - return; - } - } - else - { - if (winrt::FocusManager::TryMoveFocus(winrt::FocusNavigationDirection::Right)) - { - args.Handled(true); - return; - } - } - args.Handled(HandleEdgeCaseFocus(false, args.OriginalSource())); - } - else if (args.Key() == winrt::VirtualKey::Up) - { - if (args.OriginalKey() != winrt::VirtualKey::GamepadDPadUp) - { - if (winrt::FocusManager::TryMoveFocus(winrt::FocusNavigationDirection::Left, GetFindNextElementOptions())) - { - args.Handled(true); - return; - } - } - else - { - if (winrt::FocusManager::TryMoveFocus(winrt::FocusNavigationDirection::Left)) - { - args.Handled(true); - return; - } - } - args.Handled(HandleEdgeCaseFocus(true, args.OriginalSource())); } } diff --git a/dev/Breadcrumb/BreadcrumbBar.h b/dev/Breadcrumb/BreadcrumbBar.h index 561809d26a..fa1653ac70 100644 --- a/dev/Breadcrumb/BreadcrumbBar.h +++ b/dev/Breadcrumb/BreadcrumbBar.h @@ -48,7 +48,6 @@ class BreadcrumbBar : bool MoveFocus(int initialIndexIncrement); bool MoveFocusPrevious(); bool MoveFocusNext(); - bool HandleEdgeCaseFocus(bool first, const winrt::IInspectable& source); void OnChildPreviewKeyDown(const winrt::IInspectable& sender, const winrt::KeyRoutedEventArgs& args); void UpdateItemsRepeaterItemsSource(); From 29d1ee2786ebaa483298104fb8cd4ce986eb039f Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Thu, 9 Mar 2023 12:39:21 -0800 Subject: [PATCH 09/40] Preventing repeater to reuse default layout (#8246) (cherry picked from commit 635e1b17fc1465e95e6f9dc45553b241e0169347) --- dev/Breadcrumb/BreadcrumbBarItem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/Breadcrumb/BreadcrumbBarItem.cpp b/dev/Breadcrumb/BreadcrumbBarItem.cpp index 99b6224991..bd66c1e0d1 100644 --- a/dev/Breadcrumb/BreadcrumbBarItem.cpp +++ b/dev/Breadcrumb/BreadcrumbBarItem.cpp @@ -537,6 +537,8 @@ void BreadcrumbBarItem::InstantiateFlyout() winrt::AutomationProperties::SetName(ellipsisItemsRepeater, s_ellipsisItemsRepeaterAutomationName); ellipsisItemsRepeater.HorizontalAlignment(winrt::HorizontalAlignment::Stretch); + ellipsisItemsRepeater.Layout(winrt::StackLayout()); + m_ellipsisElementFactory = winrt::make_self(); ellipsisItemsRepeater.ItemTemplate(*m_ellipsisElementFactory); From f05e56328fcf81364fa4aefe171f2ca91b88cfc4 Mon Sep 17 00:00:00 2001 From: Keith Mahoney <41657372+kmahone@users.noreply.github.com> Date: Fri, 24 Mar 2023 14:14:19 -0700 Subject: [PATCH 10/40] Move official build pipeline to OneBranch (#8319) --- .../MUX-BuildDevProject-Steps.yml | 9 + .../MUX-BuildProject-Steps.yml | 42 +- .../MUX-InstallDotNetSDK-Steps.yml | 10 + .../MUX-NugetReleaseTest-Job.yml | 16 + .../MUX-RestorePgo-Steps.yml | 19 + .../MUX-RunHelixTests-Job.yml | 8 - .../MUX-SourceIndexPDBs-Steps.yml | 18 + build/CreateCBSVPack.ps1 | 2 +- build/Helix/RunTestsInHelix.proj | 1 - build/MUX-CI.yml | 2 +- build/MUX-PGOInstrument.yml | 2 +- build/MUX-PR.yml | 2 +- build/MUX-Release.yml | 4 +- build/MUX-SimpleBuildAndTest.yml | 2 +- build/NuSpecs/build-nupkg.ps1 | 47 +- build/SourceIndexing/IndexPdbs.ps1 | 25 +- build/SourceIndexing/packages.config | 5 + build/WinUI-OB-Official.yml | 402 ++++++++++++++++++ build/WinUI-Official-Validation.yml | 160 +++++++ .../APITests/CommonStylesTests.cs | 2 + dev/ParallaxView/ParallaxView.cpp | 1 - dev/Repeater/ItemsRepeater.cpp | 2 - dev/ScrollPresenter/ScrollPresenter.cpp | 9 +- dev/dll/Microsoft.UI.Xaml.Common.targets | 1 + dev/dll/Microsoft.UI.Xaml.vcxproj.filters | 3 + dev/inc/RoutedEventHelpers.h | 2 +- dev/inc/SharedHelpers.h | 1 + dev/inc/StaticAssertFalse.h | 21 + dev/inc/tracker_ref.h | 2 +- environment.props | 2 +- .../Tests/MetadataProviderTests.cs | 3 + .../MSTest/MUXControls.Test.csproj | 2 + .../TAEF/MUXControls.Test.TAEF.csproj | 2 + .../AppTestAutomationHelpers.vcxproj | 2 +- .../MSTest/MUXTestInfra.MSTest.csproj | 2 +- .../TAEF/MUXTestInfra.TAEF.csproj | 2 +- 36 files changed, 726 insertions(+), 109 deletions(-) create mode 100644 build/AzurePipelinesTemplates/MUX-InstallDotNetSDK-Steps.yml create mode 100644 build/AzurePipelinesTemplates/MUX-RestorePgo-Steps.yml create mode 100644 build/AzurePipelinesTemplates/MUX-SourceIndexPDBs-Steps.yml create mode 100644 build/SourceIndexing/packages.config create mode 100644 build/WinUI-OB-Official.yml create mode 100644 build/WinUI-Official-Validation.yml create mode 100644 dev/inc/StaticAssertFalse.h diff --git a/build/AzurePipelinesTemplates/MUX-BuildDevProject-Steps.yml b/build/AzurePipelinesTemplates/MUX-BuildDevProject-Steps.yml index e9c4de854b..3de8185a4f 100644 --- a/build/AzurePipelinesTemplates/MUX-BuildDevProject-Steps.yml +++ b/build/AzurePipelinesTemplates/MUX-BuildDevProject-Steps.yml @@ -2,6 +2,15 @@ parameters: signOutput: false steps: + + - template: MUX-InstallDotNetSDK-Steps.yml + + - template: MUX-InstallWindowsSDK-Steps.yml + + - template: MUX-InstallNuget-Steps.yml + + - template: MUX-RestorePgo-Steps.yml + - template: MUX-BuildProject-Steps.yml parameters: solutionPath: MUXControls.sln diff --git a/build/AzurePipelinesTemplates/MUX-BuildProject-Steps.yml b/build/AzurePipelinesTemplates/MUX-BuildProject-Steps.yml index 54ff91a18e..08cb02d666 100644 --- a/build/AzurePipelinesTemplates/MUX-BuildProject-Steps.yml +++ b/build/AzurePipelinesTemplates/MUX-BuildProject-Steps.yml @@ -15,41 +15,11 @@ steps: echo parameters.buildOutputDir = '${{ parameters.buildOutputDir }}' displayName: 'BuildProject: Display parameters' - - task: UseDotNet@2 - displayName: 'Use .NET Core sdk' - inputs: - packageType: sdk - version: 3.1.415 - installationPath: $(Agent.ToolsDirectory)/dotnet - - - template: MUX-InstallWindowsSDK-Steps.yml - - - template: MUX-InstallNuget-Steps.yml - - # The environment variable VCToolsInstallDir isn't defined on lab machines, so we need to retrieve it ourselves. - - script: | - "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -Latest -requires Microsoft.Component.MSBuild -property InstallationPath > %TEMP%\vsinstalldir.txt - set /p _VSINSTALLDIR15=<%TEMP%\vsinstalldir.txt - del %TEMP%\vsinstalldir.txt - call "%_VSINSTALLDIR15%\Common7\Tools\VsDevCmd.bat" - echo VCToolsInstallDir = %VCToolsInstallDir% - echo ##vso[task.setvariable variable=VCToolsInstallDir]%VCToolsInstallDir% - displayName: 'Retrieve VC tools directory' - - task: CmdLine@1 displayName: 'Display build machine environment variables' inputs: filename: 'set' - - task: powershell@2 - displayName: 'Restore PGO database' - condition: eq(variables['PGOBuildMode'], 'Optimize') - inputs: - targetType: filePath - workingDirectory: $(Build.SourcesDirectory)\tools\MUXPGODatabase - filePath: $(Build.SourcesDirectory)\tools\MUXPGODatabase\restore-pgodb.ps1 - arguments: -NuGetConfigPath $(Build.SourcesDirectory)\nuget.config - - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 displayName: 'NuGet restore ${{ parameters.solutionPath }}' inputs: @@ -64,8 +34,6 @@ steps: vsVersion: 16.0 platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' - # Workaround for an MSBuild logging nullref - remove when https://github.com/microsoft/azure-pipelines-tasks/issues/14904 is fixed. - enableDefaultLogger: false msbuildArgs: '/restore /p:UseInsiderSDK=$(UseInsiderSDK) /p:AppxPackageDir="${{ parameters.appxPackageDir }}" /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.SourcesDirectory)/${{ parameters.solutionPath }}.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' - task: PublishBuildArtifacts@1 @@ -75,10 +43,6 @@ steps: PathtoPublish: $(Build.SourcesDirectory)/${{ parameters.solutionPath }}.$(buildPlatform).$(buildConfiguration).binlog artifactName: ${{ parameters.artifactName }} - - task: powershell@2 - displayName: 'Source Index PDBs' - inputs: - targetType: filePath - filePath: build\SourceIndexing\IndexPdbs.ps1 - arguments: -SearchDir '${{ parameters.buildOutputDir }}\$(buildConfiguration)' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion) - errorActionPreference: silentlyContinue + - template: MUX-SourceIndexPDBs-Steps.yml + parameters: + buildOutputDir: ${{ parameters.buildOutputDir }} \ No newline at end of file diff --git a/build/AzurePipelinesTemplates/MUX-InstallDotNetSDK-Steps.yml b/build/AzurePipelinesTemplates/MUX-InstallDotNetSDK-Steps.yml new file mode 100644 index 0000000000..9d2aae3778 --- /dev/null +++ b/build/AzurePipelinesTemplates/MUX-InstallDotNetSDK-Steps.yml @@ -0,0 +1,10 @@ +parameters: + dotNetVersion: 3.1.415 + +steps: + - task: UseDotNet@2 + displayName: 'Use .NET Core sdk ${{ parameters.dotNetVersion }}' + inputs: + packageType: sdk + version: ${{ parameters.dotNetVersion }} + installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file diff --git a/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml b/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml index 71d0f224bf..c003fcdddf 100644 --- a/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml @@ -89,6 +89,22 @@ jobs: .\test\MUXControlsReleaseTest\updateUsedNugetPackageVersion.ps1 $newVersion displayName: Update proj files to use candidate nupkg. + - template: MUX-InstallWindowsSDK-Steps.yml + + - template: MUX-InstallNuget-Steps.yml + + - template: MUX-InstallDotNetSDK-Steps.yml + + # The environment variable VCToolsInstallDir isn't defined on lab machines, so we need to retrieve it ourselves. + - script: | + "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -Latest -requires Microsoft.Component.MSBuild -property InstallationPath > %TEMP%\vsinstalldir.txt + set /p _VSINSTALLDIR15=<%TEMP%\vsinstalldir.txt + del %TEMP%\vsinstalldir.txt + call "%_VSINSTALLDIR15%\Common7\Tools\VsDevCmd.bat" + echo VCToolsInstallDir = %VCToolsInstallDir% + echo ##vso[task.setvariable variable=VCToolsInstallDir]%VCToolsInstallDir% + displayName: 'Retrieve VC tools directory' + - template: MUX-BuildProject-Steps.yml parameters: solutionPath: test\MUXControlsReleaseTest\RuntimeComponentThatUsesMUX\RuntimeComponentThatUsesMUX.sln diff --git a/build/AzurePipelinesTemplates/MUX-RestorePgo-Steps.yml b/build/AzurePipelinesTemplates/MUX-RestorePgo-Steps.yml new file mode 100644 index 0000000000..b7a03267af --- /dev/null +++ b/build/AzurePipelinesTemplates/MUX-RestorePgo-Steps.yml @@ -0,0 +1,19 @@ +steps: + # The environment variable VCToolsInstallDir isn't defined on lab machines, so we need to retrieve it ourselves. + - script: | + "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -Latest -requires Microsoft.Component.MSBuild -property InstallationPath > %TEMP%\vsinstalldir.txt + set /p _VSINSTALLDIR15=<%TEMP%\vsinstalldir.txt + del %TEMP%\vsinstalldir.txt + call "%_VSINSTALLDIR15%\Common7\Tools\VsDevCmd.bat" + echo VCToolsInstallDir = %VCToolsInstallDir% + echo ##vso[task.setvariable variable=VCToolsInstallDir]%VCToolsInstallDir% + displayName: 'Retrieve VC tools directory' + + - task: powershell@2 + displayName: 'Restore PGO database' + condition: eq(variables['PGOBuildMode'], 'Optimize') + inputs: + targetType: filePath + workingDirectory: $(Build.SourcesDirectory)\tools\MUXPGODatabase + filePath: $(Build.SourcesDirectory)\tools\MUXPGODatabase\restore-pgodb.ps1 + arguments: -NuGetConfigPath $(Build.SourcesDirectory)\nuget.config \ No newline at end of file diff --git a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml index 92e2c6eeb0..d044a2a01d 100644 --- a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml @@ -95,14 +95,6 @@ jobs: outputProjFileName: 'RunTestsInHelix-InteractionTests.proj' taefQuery: ${{ parameters.taefQuery }} - - template: MUX-CreateHelixProjFile-Steps.yml - parameters: - condition: and(succeeded(),ne('${{ parameters.testSuite }}','NugetTestSuite')) - testBinaryDirectoryPath: '$(Build.SourcesDirectory)\HelixPayload\$(buildConfiguration)\$(buildPlatform)' - testFilePattern: 'MUXExperimental.Test.dll' - outputProjFileName: 'RunTestsInHelix-ExperimentalInteractionTests.proj' - taefQuery: ${{ parameters.taefQuery }} - - template: MUX-CreateHelixProjFile-Steps.yml parameters: condition: and(succeeded(),ne('${{ parameters.testSuite }}','NugetTestSuite')) diff --git a/build/AzurePipelinesTemplates/MUX-SourceIndexPDBs-Steps.yml b/build/AzurePipelinesTemplates/MUX-SourceIndexPDBs-Steps.yml new file mode 100644 index 0000000000..f0033b32a8 --- /dev/null +++ b/build/AzurePipelinesTemplates/MUX-SourceIndexPDBs-Steps.yml @@ -0,0 +1,18 @@ +parameters: + buildOutputDir: $(buildOutputDir) + +steps: + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'NuGet restore build\SourceIndexing\packages.config' + inputs: + restoreSolution: build/SourceIndexing/packages.config + feedsToUse: config + nugetConfigPath: nuget.config + restoreDirectory: $(Build.SourcesDirectory)/packages + + - task: powershell@2 + displayName: 'Source Index PDBs' + inputs: + targetType: filePath + filePath: build\SourceIndexing\IndexPdbs.ps1 + arguments: -SearchDir '${{ parameters.buildOutputDir }}\$(buildConfiguration)' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion) diff --git a/build/CreateCBSVPack.ps1 b/build/CreateCBSVPack.ps1 index 6f30d41d05..a9ec528c55 100644 --- a/build/CreateCBSVPack.ps1 +++ b/build/CreateCBSVPack.ps1 @@ -205,4 +205,4 @@ $contentString = "This is the contents of version '$($vpackversion)' of the Micr Set-Content -Path $readmeFilePath -Value $contentString # This sets a Pipeline variable that the Job will use to push the created vpacks with the specified version. -Write-Host "##vso[task.setvariable variable=vpackversion]$vpackversion" \ No newline at end of file +Write-Host "##vso[task.setvariable variable=vpackversion;isOutput=true;]$vpackversion" \ No newline at end of file diff --git a/build/Helix/RunTestsInHelix.proj b/build/Helix/RunTestsInHelix.proj index 44d1ae835d..08d914ea07 100644 --- a/build/Helix/RunTestsInHelix.proj +++ b/build/Helix/RunTestsInHelix.proj @@ -13,7 +13,6 @@ - diff --git a/build/MUX-CI.yml b/build/MUX-CI.yml index a08bc860ab..48cc44f192 100644 --- a/build/MUX-CI.yml +++ b/build/MUX-CI.yml @@ -9,7 +9,7 @@ jobs: name: WinDevPoolOSS-L ${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}: name: WinDevPool-L - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest timeoutInMinutes: 120 strategy: maxParallel: 10 diff --git a/build/MUX-PGOInstrument.yml b/build/MUX-PGOInstrument.yml index 026c59f141..744515d290 100644 --- a/build/MUX-PGOInstrument.yml +++ b/build/MUX-PGOInstrument.yml @@ -9,7 +9,7 @@ jobs: - job: Build pool: name: WinDevPool-L - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest timeoutInMinutes: 120 strategy: maxParallel: 10 diff --git a/build/MUX-PR.yml b/build/MUX-PR.yml index 8c59ada04e..8823449571 100644 --- a/build/MUX-PR.yml +++ b/build/MUX-PR.yml @@ -27,7 +27,7 @@ jobs: name: WinDevPoolOSS-L ${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}: name: WinDevPool-L - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest timeoutInMinutes: 120 strategy: maxParallel: 10 diff --git a/build/MUX-Release.yml b/build/MUX-Release.yml index 725f81f70c..06c231e55f 100644 --- a/build/MUX-Release.yml +++ b/build/MUX-Release.yml @@ -16,7 +16,7 @@ jobs: - job: Scanning pool: name: WinDevPool-S - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest steps: @@ -44,7 +44,7 @@ jobs: eq(variables['useBuildOutputFromBuildId'],'') pool: name: WinDevPool-L - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest timeoutInMinutes: 120 strategy: maxParallel: 10 diff --git a/build/MUX-SimpleBuildAndTest.yml b/build/MUX-SimpleBuildAndTest.yml index a3ebf03bcc..2b44c8c07b 100644 --- a/build/MUX-SimpleBuildAndTest.yml +++ b/build/MUX-SimpleBuildAndTest.yml @@ -15,7 +15,7 @@ jobs: name: WinDevPoolOSS-L ${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}: name: WinDevPool-L - demands: ImageOverride -equals WinDevVS16-9 + demands: ImageOverride -equals WinDevVS17-latest timeoutInMinutes: 120 variables: appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages diff --git a/build/NuSpecs/build-nupkg.ps1 b/build/NuSpecs/build-nupkg.ps1 index 9843307b7b..b9a94d084b 100644 --- a/build/NuSpecs/build-nupkg.ps1 +++ b/build/NuSpecs/build-nupkg.ps1 @@ -12,6 +12,17 @@ Param( [switch]$SkipFrameworkPackage ) +Write-Host "BuildOutput = '$BuildOutput'" +Write-Host "OutputDir = '$OutputDir'" +Write-Host "VersionOverride = '$VersionOverride'" +Write-Host "Subversion = '$Subversion'" +Write-Host "DateOverride = '$DateOverride'" +Write-Host "prereleaseversion = '$prereleaseversion'" +Write-Host "BuildFlavor = '$BuildFlavor'" +Write-Host "BuildArch = '$BuildArch'" +Write-Host "NoDeleteTemp = '$NoDeleteTemp'" +Write-Host "SkipFrameworkPackage = '$SkipFrameworkPackage'" + # # Version is read from the VERSION file. # @@ -161,40 +172,4 @@ if (-not $NoDeleteTemp) Remove-Item -Recurse -Force "$($TempDir.FullName)" } -$nupkgtitle = "Microsoft.Experimental.UI.Xaml" -$TempDir = New-TemporaryDirectory -Write-Verbose "TempDir = $($TempDir.FullName)" - -$runtimesDir = "$($TempDir.FullName)\runtimes" -$toolsDir = "$($TempDir.FullName)\tools" - -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\x86\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.dll "$runtimesDir\win10-x86\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\x86\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.pri "$runtimesDir\win10-x86\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\x64\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.dll "$runtimesDir\win10-x64\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\x64\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.pri "$runtimesDir\win10-x64\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\arm\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.dll "$runtimesDir\win10-arm\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\arm\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.pri "$runtimesDir\win10-arm\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\arm64\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.dll "$runtimesDir\win10-arm64\native" -Copy-IntoNewDirectory -IfExists $BuildOutput\$BuildFlavor\arm64\Microsoft.Experimental.UI.Xaml\Microsoft.Experimental.UI.Xaml.pri "$runtimesDir\win10-arm64\native" - - -$CommonNugetArgs = "-properties `"BuildOutput=$BuildOutput``;ID=$nupkgtitle``;RUNTIMESDIR=$runtimesDir`;TOOLSDIR=$toolsDir`;BUILDFLAVOR=$($BuildFlavor)`;BUILDARCH=$($BuildArch)`"" - -$NugetArgs = "$CommonNugetArgs -OutputDirectory $OutputDir" - -$nugetExe = "$scriptDirectory\..\..\tools\NugetWrapper.cmd" -$NugetCmdLine = "$nugetExe pack Microsoft.Experimental.UI.Xaml.nuspec $NugetArgs -version $version" -Write-Host $NugetCmdLine -Invoke-Expression $NugetCmdLine -if ($lastexitcode -ne 0) -{ - Write-Host "Nuget returned $lastexitcode" - Exit $lastexitcode; -} - -if (-not $NoDeleteTemp) -{ - Remove-Item -Recurse -Force "$($TempDir.FullName)" -} - popd \ No newline at end of file diff --git a/build/SourceIndexing/IndexPdbs.ps1 b/build/SourceIndexing/IndexPdbs.ps1 index e3cde91a8b..cee33eb6a4 100644 --- a/build/SourceIndexing/IndexPdbs.ps1 +++ b/build/SourceIndexing/IndexPdbs.ps1 @@ -8,10 +8,27 @@ Param( [switch]$recursive ) -$debuggerPath = (Get-ItemProperty -path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" -name WindowsDebuggersRoot10).WindowsDebuggersRoot10 -$srcsrvPath = Join-Path $debuggerPath "x64\srcsrv" -$srctoolExe = Join-Path $srcsrvPath "srctool.exe" -$pdbstrExe = Join-Path $srcsrvPath "pdbstr.exe" + +$repoRoot = Join-Path (Split-Path -Parent $script:MyInvocation.MyCommand.Path) "..\..\" +$pdbstrExe = Join-Path $repoRoot "packages\Microsoft.Debugging.Tools.PdbStr.20230202.1638.0\content\amd64\pdbstr.exe" +$srctoolExe = Join-Path $repoRoot "packages\Microsoft.Debugging.Tools.SrcTool.20230202.1638.0\content\amd64\srctool.exe" + +Write-Host "srctoolExe = $srctoolExe" +Write-Host "pdbstrExe = $pdbstrExe" + +if(!(Test-Path $srctoolExe)) +{ + Write-Error "Not found: $srctoolExe" + Write-Error "Make sure to run nuget restore before running script" + return -1 +} + +if(!(Test-Path $pdbstrExe)) +{ + Write-Error "Not found: $pdbstrExe" + Write-Error "Make sure to run nuget restore before running script" + return -1 +} $fileTable = @{} foreach ($gitFile in & git ls-files) diff --git a/build/SourceIndexing/packages.config b/build/SourceIndexing/packages.config new file mode 100644 index 0000000000..24326d8e00 --- /dev/null +++ b/build/SourceIndexing/packages.config @@ -0,0 +1,5 @@ + + + + + diff --git a/build/WinUI-OB-Official.yml b/build/WinUI-OB-Official.yml new file mode 100644 index 0000000000..d17b938869 --- /dev/null +++ b/build/WinUI-OB-Official.yml @@ -0,0 +1,402 @@ +name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr) + +trigger: none + +parameters: +- name: 'MUXFinalRelease' + displayName: 'MUXFinalRelease' + type: boolean + default: false + +- name: 'debug' + displayName: 'Enable debug output' + type: boolean + default: false + +variables: + MUXFinalRelease: ${{ parameters.MUXFinalRelease }} + system.debug: ${{ parameters.debug }} + ENABLE_PRS_DELAYSIGN: 1 + ROOT: $(Build.SourcesDirectory) + REPOROOT: $(Build.SourcesDirectory) + OUTPUTROOT: $(REPOROOT)\out + NUGET_XMLDOC_MODE: none + + # Docker image which is used to build the project https://aka.ms/obpipelines/containers + WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:latest' + + Codeql.Enabled: true # CodeQL once every 3 days on the default branch for all languages its applicable to in that pipeline. + +resources: + repositories: + - repository: templates + type: git + name: OneBranch.Pipelines/GovernedTemplates + ref: refs/heads/main + +extends: + template: v2/Microsoft.Official.yml@templates # https://aka.ms/obpipelines/templates + parameters: + platform: + name: 'windows_undocked' + + globalSdl: # Refer the wiki for more options in this parameter: https://aka.ms/obpipelines/sdl + tsa: + enabled: true + + stages: + - stage: build + jobs: + - job: main + pool: + type: windows + + strategy: + maxParallel: 10 + matrix: + Release_x86: + buildPlatform: 'x86' + buildConfiguration: 'Release' + PGOBuildMode: 'Optimize' + Release_x64: + buildPlatform: 'x64' + buildConfiguration: 'Release' + PGOBuildMode: 'Optimize' + Release_Arm: + buildPlatform: 'arm' + buildConfiguration: 'Release' + Release_Arm64: + buildPlatform: 'arm64' + buildConfiguration: 'Release' + + variables: + appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages + buildOutputDir : $(Build.SourcesDirectory)\BuildOutput + ob_outputDirectory: $(build.artifactStagingDirectory) + ob_artifactSuffix: _$(buildPlatform)_$(buildConfiguration) + ob_git_fetchDepth: 0 # This disables shallow git fetch. This is required for the restore-pgodb.ps1 script to work correctly. + + steps: + + - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - powershell: | + ls env: + displayName: 'display env vars' + continueOnError: true + + - powershell: | + ls "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" + displayName: 'List SDKS' + continueOnError: true + + # Download and extract nuget package with non-stubbed MicrosoftTelemetry.h header + - task: DownloadPackage@1 + displayName: 'Download Microsoft.Telemetry.Inbox.Native' + inputs: + feed: '/3415933f-ac0d-4766-8c0a-3f4c247c25f5' # 0 + view: 'ef61a1c1-003b-4a27-bde5-beec8301021b' # Release + definition: '2fe60c09-c66f-4275-ae2d-f015c7170c72' # Microsoft.Telemetry.Inbox.Native + version: '10.0.18362.1-190318-1202.19h1-release.amd64fre' # latest version + downloadPath: '$(System.DefaultWorkingDirectory)' # download and extract to repo root + + # Replace the stubbed MicrosoftTelemetry.h with the real one + # Delete the existing stubbed MicrosoftTelemetry.h first, to ensure that if it is no longer at the expected path that the task, and build, fails + - script: | + del $(System.DefaultWorkingDirectory)\dev\telemetry\MicrosoftTelemetry.h + move /Y $(System.DefaultWorkingDirectory)\build\native\inc\MicrosoftTelemetry.h $(System.DefaultWorkingDirectory)\dev\telemetry\ + failOnStderr: true + displayName: 'Replace existing stubbed MicrosoftTelemetry.h header with the real version from the nuget package' + + - template: build\AzurePipelinesTemplates\MUX-RestorePgo-Steps.yml@self + + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'NuGet restore MUXControls.sln' + inputs: + restoreSolution: $(Build.SourcesDirectory)\MUXControls.sln + feedsToUse: config + nugetConfigPath: nuget.config + + - task: VSBuild@1 + displayName: 'Build solution MUXControls.sln' + inputs: + solution: '$(Build.SourcesDirectory)\MUXControls.sln' + vsVersion: 17.0 + platform: $(buildPlatform) + configuration: $(buildConfiguration) + msbuildArgs: '/restore /p:AppxPackageDir=$(appxPackageDir) /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.ArtifactStagingDirectory)/MUXControls.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' + + - powershell: | + Get-ChildItem -Recurse $(Build.SourcesDirectory)\BuildOutput + displayName: 'list contents of BuildOutput' + continueOnError: true + + - task: onebranch.pipeline.signing@1 # https://aka.ms/obpipelines/signing + displayName: 'Sign output (BuildOutput)' + inputs: + command: 'sign' + signing_environment: 'azure-ado' + files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + search_root: $(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration) + signing_profile: external_distribution + + # The test apps build directly into appxPackageDir, so we sign there also. + - task: onebranch.pipeline.signing@1 + displayName: 'Sign output (appxPackageDir)' + inputs: + command: 'sign' + signing_environment: 'azure-ado' + files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + search_root: $(appxPackageDir) + signing_profile: external_distribution + + - template: build\AzurePipelinesTemplates\MUX-SourceIndexPDBs-Steps.yml@self + parameters: + buildOutputDir: $(buildOutputDir) + + - task: PublishSymbols@2 # Publish symbols to internal symweb + continueOnError: true + displayName: 'Publish symbols (internal)' + inputs: + SearchPattern: $(buildOutputDir)/$(buildConfiguration)/$(buildPlatform)/**/*.pdb + SymbolServerType: 'TeamServices' + + - template: build\AzurePipelinesTemplates\MUX-MakeFrameworkPackages-Steps.yml@self + parameters: + buildOutputDir: $(buildOutputDir) + signOutput: true + + - task: powershell@2 + displayName: 'Copy files to staging dir' + inputs: + targetType: filePath + filePath: build\CopyFilesToStagingDir.ps1 + arguments: -BuildOutputDir '$(buildOutputDir)' -PublishDir '$(Build.ArtifactStagingDirectory)' -Platform '$(buildPlatform)' -Configuration '$(buildConfiguration)' + + - powershell: | + Get-ChildItem -Recurse $(Build.ArtifactStagingDirectory) + displayName: 'list contents of ArtifactStagingDirectory' + continueOnError: true + + - stage: pack + dependsOn: build + jobs: + - job: nupkg + pool: + type: windows + variables: + useReleaseTag: '$(MUXFinalRelease)' + nupkgdir: '$(build.artifactStagingDirectory)' + primaryBuildArch: x86 + ob_outputDirectory: $(build.artifactStagingDirectory) + + steps: + - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self + + - powershell: | + ls env: + displayName: 'display env vars' + continueOnError: true + + - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x86_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - powershell: | + Get-ChildItem -Recurse $(Build.SourcesDirectory)\Artifacts + displayName: 'list contents of Artifacts' + continueOnError: true + + - powershell: | + $prereleaseTag = "prerelease" + if ("$(useReleaseTag)" -eq [bool]::TrueString) { $prereleaseTag = "" } + + & "$env:Build_SourcesDirectory\build\NuSpecs\build-nupkg.ps1" ` + -BuildOutput '$(Build.SourcesDirectory)\Artifacts\drop' ` + -OutputDir '$(nupkgdir)' ` + -prereleaseversion "$prereleaseTag" ` + -DateOverride '$(builddate)' ` + -Subversion '$(buildrevision)' ` + -BuildArch $(primaryBuildArch) ` + -BuildFlavor Release + displayName: 'build-nupkg.ps1' + + - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 + displayName: 'CodeSign (nupkg)' + inputs: + ConnectedServiceName: WinUISigning + FolderPath: $(nupkgdir) + Pattern: | + **/Microsoft.UI.Xaml*.nupkg + UseMinimatch: true + signConfigType: inlineSignParams + inlineOperation: | + [ + { + "KeyCode" : "CP-401405", + "OperationCode" : "NuGetSign", + "Parameters" : {}, + "ToolName" : "sign", + "ToolVersion" : "1.0" + }, + { + "KeyCode" : "CP-401405", + "OperationCode" : "NuGetVerify", + "Parameters" : {}, + "ToolName" : "sign", + "ToolVersion" : "1.0" + } + ] + + - job: vpack + pool: + type: windows + variables: + windowsPublicsWinmdVersion: 0.0.2 + internalSDKFeedUrl: https://pkgs.dev.azure.com/microsoft/WinUI/_packaging/WinUIInternalWindowsSDK/nuget/v3/index.json + publishDir: $(Build.SourcesDirectory)\publish + ob_outputDirectory: $(publishDir) + + steps: + - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - task: NuGetAuthenticate@0 + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x86_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # This contains the OS internal version of windows.winmd which is required for us to re-merge our winmd so that it can be used from OS repo. + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'nuget install Microsoft.Internal.WinUI.WindowsPublicsWinmd' + inputs: + command: custom + arguments: 'install Microsoft.Internal.WinUI.WindowsPublicsWinmd -NonInteractive -Version $(windowsPublicsWinmdVersion) -Source $(internalSDKFeedUrl) -OutputDirectory packages' + + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'NuGet restore dev\dll\packages.config' + inputs: + restoreSolution: dev\dll\packages.config + feedsToUse: config + nugetConfigPath: nuget.config + restoreDirectory: $(Build.SourcesDirectory)\packages + + - script: | + $(Build.SourcesDirectory)\build\CreateCBSVPack.cmd -releaseFolder $(Build.SourcesDirectory)\Artifacts\drop\Release -publicsRoot $(Build.SourcesDirectory)\packages\Microsoft.Internal.WinUI.WindowsPublicsWinmd.$(windowsPublicsWinmdVersion) -publishDir $(publishDir) + displayName: CreateCBSVPack.cmd + name: createvpack + failOnStderr: true + # Note: This task sets the 'vpackversion' variable that is used in the Job below. + + - powershell: | + Get-ChildItem -Recurse $(publishDir) + displayName: 'list contents of publishDir' + continueOnError: true + + # In OneBranch, a single Job can only publish one vpack. So we have a separate Job 'pushvpack' to push each of the + # vpacks created in the previous Job. + - job: pushvpack + dependsOn: vpack + pool: + type: windows + strategy: + maxParallel: 10 + matrix: + CBS_x86: + vpackName: MicrosoftUIXamlInbox_x86 + sourceSubDir: CBS\x86 + CBS_x64: + vpackName: MicrosoftUIXamlInbox_x64 + sourceSubDir: CBS\x64 + CBS_Arm: + vpackName: MicrosoftUIXamlInbox_arm + sourceSubDir: CBS\arm + CBS_Arm64: + vpackName: MicrosoftUIXamlInbox_arm64 + sourceSubDir: CBS\arm64 + CBS_Winmd: + vpackName: MicrosoftUIXamlInboxWinmd + sourceSubDir: CBS\winmd + WinUI: + vpackName: Microsoft.UI.Xaml + sourceSubDir: WinUIVpack + variables: + + publishDir: $(Build.SourcesDirectory)\publish + vpackDir: $(publishDir)\$(sourceSubDir) + ob_outputDirectory: $(vpackDir) + ob_artifactSuffix: _$(vpackName) + + # createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) + ob_createvpack_enabled: true + ob_createvpack_packagename: $(vpackName) + ob_createvpack_owneralias: kmahone + ob_createvpack_description: $(vpackName) + ob_createvpack_provData: true + ob_createvpack_versionAs: string + vpackversion: $[ dependencies.vpack.outputs['createvpack.vpackversion'] ] + ob_createvpack_version: $(vpackversion)-kmahonetest4 + ob_createvpack_verbose: true + ob_createvpack_topLevelRetries: 0 + ob_createvpack_failOnStdErr: true + ob_createvpack_taskLogVerbosity: Detailed + + steps: + + - powershell: | + ls env: + displayName: 'display env vars' + continueOnError: true + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_pack_vpack + targetPath: $(publishDir) + + - powershell: | + Get-ChildItem -Recurse $(publishDir) + displayName: 'list contents of publishDir' + continueOnError: true + \ No newline at end of file diff --git a/build/WinUI-Official-Validation.yml b/build/WinUI-Official-Validation.yml new file mode 100644 index 0000000000..8ad4040778 --- /dev/null +++ b/build/WinUI-Official-Validation.yml @@ -0,0 +1,160 @@ +name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr) + +variables: + minimumExpectedTestsExecutedCount: 2000 # Sanity check for minimum expected tests to be reported + rerunPassesRequiredToAvoidFailure: 5 + + +resources: + pipelines: + - pipeline: WinUI-OB-Official + source: OneBranch\microsoft-ui-xaml-staging\WinUI2-Internal-OB-Official + trigger: + branches: + include: + - release/* + - main + - user/kmahone/ob + +jobs: + +# This job gets the build from the WinUI-OB-Official pipeline +# The following jobs validate the build by running tests. +- job: GetBuild + pool: + name: WinDevPool-L + demands: ImageOverride -equals WinDevVS17-latest + timeoutInMinutes: 120 + + variables: + buildIdToTest: $(resources.pipeline.WinUI-OB-Official.runID) + buildPipelineDefinition: 98255 # This is WinUI-OB-Official + + steps: + + - powershell: | + cmd.exe /c set + displayName: 'display env vars' + continueOnError: true + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(buildPipelineDefinition) + buildVersionToDownload: specific + pipelineId : $(buildIdToTest) + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x86_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(buildPipelineDefinition) + buildVersionToDownload: specific + pipelineId : $(buildIdToTest) + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(buildPipelineDefinition) + buildVersionToDownload: specific + pipelineId : $(buildIdToTest) + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(buildPipelineDefinition) + buildVersionToDownload: specific + pipelineId : $(buildIdToTest) + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_pack_nupkg + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(buildPipelineDefinition) + buildVersionToDownload: specific + pipelineId : $(buildIdToTest) + + - task: PublishBuildArtifacts@1 + displayName: 'Publish artifact: drop' + inputs: + PathtoPublish: $(Build.SourcesDirectory)\Artifacts\drop + artifactName: drop + + # We can't publish to the public Symbol Server from the main OneBranch build, so we do it here instead. + - task: PublishSymbols@2 # Publish symbols to public Microsoft Symbol Server + displayName: 'Publish symbols (public)' + continueOnError: true + inputs: + SymbolsFolder: $(Build.SourcesDirectory)\Artifacts\drop + SearchPattern: '**/Microsoft.UI.Xaml.pdb' + SymbolServerType: 'TeamServices' + IndexSources: false + env: + ArtifactServices_Symbol_AccountName: microsoftpublicsymbols + ArtifactServices_Symbol_PAT: $(WinUILab-Pipeline-PAT) + + +- template: AzurePipelinesTemplates\MUX-RunHelixTests-Job.yml + parameters: + name: 'RunTestsInHelix' + dependsOn: GetBuild + testSuite: 'DevTestSuite' + rerunPassesRequiredToAvoidFailure: $(rerunPassesRequiredToAvoidFailure) + +# Build solution that depends on nuget package +- template: AzurePipelinesTemplates\MUX-NugetReleaseTest-Job.yml + parameters: + buildJobName: 'BuildNugetPkgTests' + buildArtifactName: 'NugetPkgTestsDrop' + runTestJobName: 'RunNugetPkgTestsInHelix' + helixType: 'test/nuget' + dependsOn: GetBuild + useFrameworkPkg: false + +# Framework package tests +- template: AzurePipelinesTemplates\MUX-NugetReleaseTest-Job.yml + parameters: + buildJobName: 'BuildFrameworkPkgTests' + buildArtifactName: 'FrameworkPkgTestsDrop' + runTestJobName: 'RunFrameworkPkgTestsInHelix' + helixType: 'test/frpkg' + dependsOn: GetBuild + useFrameworkPkg: true + +- template: AzurePipelinesTemplates\MUX-ProcessTestResults-Job.yml + parameters: + dependsOn: + - RunTestsInHelix + - RunNugetPkgTestsInHelix + - RunFrameworkPkgTestsInHelix + rerunPassesRequiredToAvoidFailure: $(rerunPassesRequiredToAvoidFailure) + minimumExpectedTestsExecutedCount: $(minimumExpectedTestsExecutedCount) + +# NuGet package WACK tests +- template: AzurePipelinesTemplates\MUX-WACKTests-Job.yml + parameters: + name: 'NugetPkgWACKTests' + dependsOn: BuildNugetPkgTests + artifactName: 'NugetPkgTestsDrop' + +# Framework package WACK tests +- template: AzurePipelinesTemplates\MUX-WACKTests-Job.yml + parameters: + name: 'FrameworkPkgWACKTests' + dependsOn: BuildFrameworkPkgTests + artifactName: 'FrameworkPkgTestsDrop' + + diff --git a/dev/CommonStyles/APITests/CommonStylesTests.cs b/dev/CommonStyles/APITests/CommonStylesTests.cs index 68287c5a22..48f624a4c2 100644 --- a/dev/CommonStyles/APITests/CommonStylesTests.cs +++ b/dev/CommonStyles/APITests/CommonStylesTests.cs @@ -251,7 +251,9 @@ public void DumpThemeResources() }); } +#if MUX_PRERELEASE [TestMethod] +#endif public void VerifyUseCompactResourcesAPI() { //Verify there is no crash and TreeViewItemMinHeight is not the same when changing UseCompactResources. diff --git a/dev/ParallaxView/ParallaxView.cpp b/dev/ParallaxView/ParallaxView.cpp index d4098be6ae..e68b6578de 100644 --- a/dev/ParallaxView/ParallaxView.cpp +++ b/dev/ParallaxView/ParallaxView.cpp @@ -161,7 +161,6 @@ winrt::Size ParallaxView::ArrangeOverride(winrt::Size const& finalSize) { // Ensure that this ParallaxView has a rectangular clip. winrt::RectangleGeometry newRectangleGeometry; - newRectangleGeometry.Rect(); Clip(newRectangleGeometry); rectangleGeometry = newRectangleGeometry; diff --git a/dev/Repeater/ItemsRepeater.cpp b/dev/Repeater/ItemsRepeater.cpp index 2eed8e0d3e..a3f6426d1a 100644 --- a/dev/Repeater/ItemsRepeater.cpp +++ b/dev/Repeater/ItemsRepeater.cpp @@ -560,7 +560,6 @@ void ItemsRepeater::OnDataSourcePropertyChanged(const winrt::ItemsSourceView& ol nullptr /* oldItems */, -1 /* newIndex */, -1 /* oldIndex */); - args.Action(); auto const processingChange = gsl::finally([this]() { m_processingItemsSourceChange.set(nullptr); @@ -609,7 +608,6 @@ void ItemsRepeater::OnItemTemplateChanged(const winrt::IElementFactory& oldValue nullptr /* oldItems */, -1 /* newIndex */, -1 /* oldIndex */); - args.Action(); auto const processingChange = gsl::finally([this]() { m_processingItemsSourceChange.set(nullptr); diff --git a/dev/ScrollPresenter/ScrollPresenter.cpp b/dev/ScrollPresenter/ScrollPresenter.cpp index 7d92aaae4e..dcac3065bf 100644 --- a/dev/ScrollPresenter/ScrollPresenter.cpp +++ b/dev/ScrollPresenter/ScrollPresenter.cpp @@ -930,7 +930,6 @@ winrt::Size ScrollPresenter::ArrangeOverride(winrt::Size const& finalSize) { // Ensure that this ScrollPresenter has a rectangular clip. winrt::RectangleGeometry newRectangleGeometry; - newRectangleGeometry.Rect(); Clip(newRectangleGeometry); rectangleGeometry = newRectangleGeometry; @@ -6746,7 +6745,7 @@ void ScrollPresenter::ProcessOffsetsChange( } // For mouse-wheel scrolling, make sure the initial velocity is larger than the minimum effective velocity. - if (operationTrigger == InteractionTrackerAsyncOperationTrigger::MouseWheel && m_state == winrt::ScrollingInteractionState::Idle) + if (static_cast(operationTrigger) & static_cast(InteractionTrackerAsyncOperationTrigger::MouseWheel) && m_state == winrt::ScrollingInteractionState::Idle) { // Minimum absolute velocity. Any lower velocity has no effect. const float c_minVelocity = 30.0f; @@ -6774,7 +6773,7 @@ void ScrollPresenter::ProcessOffsetsChange( // On pre-RS5 versions, the SnapPointBase::s_isInertiaFromImpulse boolean parameters of the snap points' composition expressions // depend on whether the request was triggere by the mouse wheel or not. - UpdateIsInertiaFromImpulse(operationTrigger == InteractionTrackerAsyncOperationTrigger::MouseWheel /*isInertiaFromImpulse*/); + UpdateIsInertiaFromImpulse(static_cast(operationTrigger) & static_cast(InteractionTrackerAsyncOperationTrigger::MouseWheel) /*isInertiaFromImpulse*/); SCROLLPRESENTER_TRACE_VERBOSE(*this, TRACE_MSG_METH_METH_STR, METH_NAME, this, L"TryUpdatePositionWithAdditionalVelocity", TypeLogging::Float2ToString(winrt::float2(offsetsVelocity)).c_str()); @@ -6918,7 +6917,7 @@ void ScrollPresenter::ProcessZoomFactorChange( const winrt::float3 centerPoint(centerPoint2D.x - m_contentLayoutOffsetX, centerPoint2D.y - m_contentLayoutOffsetY, 0.0f); // For mouse-wheel zooming, make sure the initial velocity is larger than the minimum effective velocity. - if (operationTrigger == InteractionTrackerAsyncOperationTrigger::MouseWheel && m_state == winrt::ScrollingInteractionState::Idle) + if (static_cast(operationTrigger) & static_cast(InteractionTrackerAsyncOperationTrigger::MouseWheel) && m_state == winrt::ScrollingInteractionState::Idle) { // Minimum absolute velocity. Any lower velocity has no effect. const float c_minVelocity = 0.05f; @@ -6937,7 +6936,7 @@ void ScrollPresenter::ProcessZoomFactorChange( // On pre-RS5 versions, the SnapPointBase::s_isInertiaFromImpulse boolean parameters of the snap points' composition expressions // depend on whether the request was triggere by the mouse wheel or not. - UpdateIsInertiaFromImpulse(operationTrigger == InteractionTrackerAsyncOperationTrigger::MouseWheel /*isInertiaFromImpulse*/); + UpdateIsInertiaFromImpulse(static_cast(operationTrigger) & static_cast(InteractionTrackerAsyncOperationTrigger::MouseWheel) /*isInertiaFromImpulse*/); SCROLLPRESENTER_TRACE_VERBOSE(*this, TRACE_MSG_METH_METH_FLT_STR, METH_NAME, this, L"TryUpdateScaleWithAdditionalVelocity", zoomFactorVelocity, TypeLogging::Float2ToString(winrt::float2(centerPoint.x, centerPoint.y)).c_str()); diff --git a/dev/dll/Microsoft.UI.Xaml.Common.targets b/dev/dll/Microsoft.UI.Xaml.Common.targets index 4d501a28ca..6e6b7b96f7 100644 --- a/dev/dll/Microsoft.UI.Xaml.Common.targets +++ b/dev/dll/Microsoft.UI.Xaml.Common.targets @@ -114,6 +114,7 @@ + diff --git a/dev/dll/Microsoft.UI.Xaml.vcxproj.filters b/dev/dll/Microsoft.UI.Xaml.vcxproj.filters index df7ed06902..d92fad4fa2 100644 --- a/dev/dll/Microsoft.UI.Xaml.vcxproj.filters +++ b/dev/dll/Microsoft.UI.Xaml.vcxproj.filters @@ -72,6 +72,9 @@ inc + + inc + inc diff --git a/dev/inc/RoutedEventHelpers.h b/dev/inc/RoutedEventHelpers.h index e8c96acc4f..89bd426be0 100644 --- a/dev/inc/RoutedEventHelpers.h +++ b/dev/inc/RoutedEventHelpers.h @@ -152,7 +152,7 @@ struct RoutedEventTraits template> inline RoutedEventHandler_revoker AddRoutedEventHandler(winrt::UIElement const& object, typename traits::HandlerT const& callback, bool handledEventsToo) { - auto handler = winrt::box_value(callback); + auto handler = winrt::box_value(callback); auto event = traits::Event(); object.AddHandler(event, handler, handledEventsToo); return { object, event, handler }; diff --git a/dev/inc/SharedHelpers.h b/dev/inc/SharedHelpers.h index 3c86aba6bc..026a026a64 100755 --- a/dev/inc/SharedHelpers.h +++ b/dev/inc/SharedHelpers.h @@ -4,6 +4,7 @@ #pragma once #include "AutoHandle.h" +#include "StaticAssertFalse.h" class SharedHelpers { diff --git a/dev/inc/StaticAssertFalse.h b/dev/inc/StaticAssertFalse.h new file mode 100644 index 0000000000..a2f9f8af61 --- /dev/null +++ b/dev/inc/StaticAssertFalse.h @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +#pragma once + +namespace details +{ + template + inline constexpr bool dependent_false_v{ false }; +} + +// Use this macro in place of static_assert(false,...) +// C++ compiler will always evaluate parse static_assert(false,...), +// raising the assert even if the method calling it is never used. +// Adding a template parameter causes it to only be compiled/assert +// if the method calling it is used +#define static_assert_false(message) \ +while(1){ \ +struct nested{}; \ +static_assert(::details::dependent_false_v, message); \ +} diff --git a/dev/inc/tracker_ref.h b/dev/inc/tracker_ref.h index 1b5482418e..230318dcfd 100644 --- a/dev/inc/tracker_ref.h +++ b/dev/inc/tracker_ref.h @@ -141,7 +141,7 @@ class tracker_ref sealed explicit tracker_ref(nullptr_t) { - static_assert(false, "tracker_ref should only be used in ReferenceRuntimeClass-derived field members and 'this' should be passed for the owner"); + static_assert_false("tracker_ref should only be used in ReferenceRuntimeClass-derived field members and 'this' should be passed for the owner"); } ~tracker_ref() diff --git a/environment.props b/environment.props index 84f90ed658..16dab7ea0c 100644 --- a/environment.props +++ b/environment.props @@ -3,7 +3,7 @@ v141 - v142 + v143 false DebugFull $(VCTargetsPath)\Microsoft.Cpp.targets diff --git a/test/IXMPTestApp/Tests/MetadataProviderTests.cs b/test/IXMPTestApp/Tests/MetadataProviderTests.cs index bc644da986..506c2d7bb5 100644 --- a/test/IXMPTestApp/Tests/MetadataProviderTests.cs +++ b/test/IXMPTestApp/Tests/MetadataProviderTests.cs @@ -20,7 +20,10 @@ namespace IXMPTestApp.Tests [TestClass] public class MetadataProviderTests { + +#if MUX_PRERELEASE [TestMethod] +#endif public void CanLoadXamlFragments() { var dispatcher = CoreApplication.MainView.Dispatcher; diff --git a/test/MUXControls.Test/MSTest/MUXControls.Test.csproj b/test/MUXControls.Test/MSTest/MUXControls.Test.csproj index 1c650c3c3a..5d3a464cfa 100644 --- a/test/MUXControls.Test/MSTest/MUXControls.Test.csproj +++ b/test/MUXControls.Test/MSTest/MUXControls.Test.csproj @@ -8,6 +8,8 @@ win-x86;win-x64;win-arm;win-arm64 true + $(NoWarn);NU1505 + true diff --git a/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj b/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj index 6434489bff..7cbdc20f3c 100644 --- a/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj +++ b/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj @@ -15,6 +15,8 @@ For simplicity's sake, we'll always get them from the x86 folder, but the CoreClr binaries are the same everywhere. --> $(NuGetPackageRoot)taef.redist.wlk\10.31.180822002\build\Binaries\x86\CoreClr\ true + $(NoWarn);NU1505 + true diff --git a/test/testinfra/AppTestAutomationHelpers/AppTestAutomationHelpers.vcxproj b/test/testinfra/AppTestAutomationHelpers/AppTestAutomationHelpers.vcxproj index 683938c972..66a7350a5a 100644 --- a/test/testinfra/AppTestAutomationHelpers/AppTestAutomationHelpers.vcxproj +++ b/test/testinfra/AppTestAutomationHelpers/AppTestAutomationHelpers.vcxproj @@ -14,7 +14,7 @@ true Windows Store 10.0 - 10.0.18362.0 + 10.0.22000.0 10.0.17763.0 false diff --git a/test/testinfra/MUXTestInfra/MSTest/MUXTestInfra.MSTest.csproj b/test/testinfra/MUXTestInfra/MSTest/MUXTestInfra.MSTest.csproj index b026730c1e..7db1cfb258 100644 --- a/test/testinfra/MUXTestInfra/MSTest/MUXTestInfra.MSTest.csproj +++ b/test/testinfra/MUXTestInfra/MSTest/MUXTestInfra.MSTest.csproj @@ -11,7 +11,7 @@ $(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots@KitsRoot10) $(MSBuildProgramFiles32)\Windows Kits\10\ - 10.0.18362.0 + 10.0.22000.0 $(UniversalCRTSdkDir)UnionMetadata\$(TargetPlatformVersion) true 0.0.4 diff --git a/test/testinfra/MUXTestInfra/TAEF/MUXTestInfra.TAEF.csproj b/test/testinfra/MUXTestInfra/TAEF/MUXTestInfra.TAEF.csproj index ebb7c2ad1d..d375112a80 100644 --- a/test/testinfra/MUXTestInfra/TAEF/MUXTestInfra.TAEF.csproj +++ b/test/testinfra/MUXTestInfra/TAEF/MUXTestInfra.TAEF.csproj @@ -26,7 +26,7 @@ $(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots@KitsRoot10) $(MSBuildProgramFiles32)\Windows Kits\10\ - 10.0.18362.0 + 10.0.22000.0 $(UniversalCRTSdkDir)UnionMetadata\$(TargetPlatformVersion) true 0.0.4 From 4d5e830e8f60b7fc4cd939dcef46b9015d53f4e4 Mon Sep 17 00:00:00 2001 From: Dilip Ojha Date: Thu, 9 Feb 2023 10:57:27 -0800 Subject: [PATCH 11/40] Update Package Versions (#8170) * updating packages * updated package version * revert last change (cherry picked from commit ceeab5f7eb15f5b694204846e987b6eb8eababf5) --- build/Helix/packages.config | 4 ++-- test/MUXControls.Test/MSTest/MUXControls.Test.csproj | 1 + test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build/Helix/packages.config b/build/Helix/packages.config index 4b9a11c964..80cf4e204f 100644 --- a/build/Helix/packages.config +++ b/build/Helix/packages.config @@ -2,7 +2,7 @@ - - + + diff --git a/test/MUXControls.Test/MSTest/MUXControls.Test.csproj b/test/MUXControls.Test/MSTest/MUXControls.Test.csproj index 5d3a464cfa..d79b781115 100644 --- a/test/MUXControls.Test/MSTest/MUXControls.Test.csproj +++ b/test/MUXControls.Test/MSTest/MUXControls.Test.csproj @@ -21,6 +21,7 @@ + diff --git a/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj b/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj index 7cbdc20f3c..ecb90c1e9c 100644 --- a/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj +++ b/test/MUXControls.Test/TAEF/MUXControls.Test.TAEF.csproj @@ -39,6 +39,7 @@ + From aa9b804b24bdf4a0e61ceabbed3373bbc0733ae5 Mon Sep 17 00:00:00 2001 From: Keith Mahoney <41657372+kmahone@users.noreply.github.com> Date: Wed, 11 Jan 2023 15:43:18 -0800 Subject: [PATCH 12/40] Use windows.10.amd64.client.reunion (#8084) (cherry picked from commit 4a295ea6412a61909766fdbc729f555234efd403) --- build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml index d044a2a01d..8b85d42ec6 100644 --- a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml @@ -21,8 +21,8 @@ parameters: Release_x64: buildPlatform: 'x64' buildConfiguration: 'release' - openHelixTargetQueues: 'Windows.10.Amd64.Client21H1.Open.xaml' - closedHelixTargetQueues: 'Windows.10.Amd64.Client21H1.xaml' + openHelixTargetQueues: 'windows.10.amd64.client.open.reunion' + closedHelixTargetQueues: 'windows.10.amd64.client.reunion' jobs: - job: ${{ parameters.name }} From cc7d8d14d5491a47e9a0a6f6a92f0ade3e3b2f14 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Thu, 30 Mar 2023 12:06:38 -0700 Subject: [PATCH 13/40] Fix pipeline issues (#8344) --- build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml index 8b85d42ec6..6655e3586e 100644 --- a/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-RunHelixTests-Job.yml @@ -22,7 +22,7 @@ parameters: buildPlatform: 'x64' buildConfiguration: 'release' openHelixTargetQueues: 'windows.10.amd64.client.open.reunion' - closedHelixTargetQueues: 'windows.10.amd64.client.reunion' + closedHelixTargetQueues: 'windows.10.amd64.client20h2.xaml' jobs: - job: ${{ parameters.name }} From 0000a1cb33740bf53723f4d5a496e0e6a0c6c342 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Fri, 7 Apr 2023 12:11:07 -0700 Subject: [PATCH 14/40] Update version.props --- version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.props b/version.props index a8b4c0cb5d..db6d53f977 100644 --- a/version.props +++ b/version.props @@ -4,7 +4,7 @@ 2 8 - 2 + 3 0 0 From 52c46d0ea29ad147413c6e7ffee2616d7b3e8aac Mon Sep 17 00:00:00 2001 From: Dmitriy Komin <45051803+DmitriyKomin@users.noreply.github.com> Date: Mon, 10 Apr 2023 16:11:59 -0700 Subject: [PATCH 15/40] Ensure lifteime of owners across coroutines (#8363) Co-authored-by: Dmitriy Komin (cherry picked from commit 4041a77fa1468062ef45bfe7a136aeca6e9044f2) --- dev/WebView2/WebView2.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dev/WebView2/WebView2.cpp b/dev/WebView2/WebView2.cpp index ff20608a6a..cf42db8397 100644 --- a/dev/WebView2/WebView2.cpp +++ b/dev/WebView2/WebView2.cpp @@ -424,6 +424,8 @@ bool WebView2::ShouldNavigate(const winrt::Uri& uri) winrt::IAsyncAction WebView2::OnSourceChanged(winrt::Uri providedUri) { + auto strongThis = get_strong(); // ensure object lifetime during coroutines + // Trigger / wait for CWV2 creation if one isn't yet ready if (!m_coreWebView) { @@ -670,6 +672,8 @@ winrt::IAsyncAction WebView2::CreateCoreObjects() MUX_ASSERT((m_isImplicitCreationInProgress && !m_isExplicitCreationInProgress) || (!m_isImplicitCreationInProgress && m_isExplicitCreationInProgress)); + auto strongThis = get_strong(); // ensure object lifetime during coroutines + if (m_isClosed) { throw winrt::hresult_error(RO_E_CLOSED, s_error_wv2_closed); @@ -711,6 +715,8 @@ winrt::IAsyncAction WebView2::CreateCoreEnvironment() noexcept hstring browserInstall; hstring userDataFolder; + auto strongThis = get_strong(); // ensure object lifetime during coroutines + if (!m_options) { // NOTE: To enable Anaheim logging, add: m_options.AdditionalBrowserArguments(L"--enable-logging=stderr --v=1"); @@ -739,6 +745,8 @@ winrt::IAsyncAction WebView2::CreateCoreEnvironment() noexcept winrt::IAsyncAction WebView2::CreateCoreWebViewFromEnvironment(HWND hwndParent) { + auto strongThis = get_strong(); // ensure object lifetime during coroutines + if (!hwndParent) { hwndParent = EnsureTemporaryHostHwnd(); @@ -1429,6 +1437,8 @@ winrt::IUnknown WebView2::GetProviderForHwnd(HWND hwnd) winrt::IAsyncAction WebView2::EnsureCoreWebView2Async() { + auto strongThis = get_strong(); // ensure object lifetime during coroutines + // If CWV2 exists already, return immediately/synchronously if (m_coreWebView) { @@ -1585,6 +1595,7 @@ winrt::IAsyncOperation WebView2::ExecuteScriptAsync(winrt::hstri { // TODO_WebView2: Consider recreating the core webview here if its process had failed, // allowing the app to use this API to recover from the error. + auto strongThis = get_strong(); // ensure object lifetime during coroutines winrt::hstring returnedValue{}; // initialized with default value if (m_coreWebView) @@ -1913,7 +1924,7 @@ void WebView2::CheckAndUpdateVisibility(bool force) // To resolve this, we delay the call to hide CoreWV if the WebView is being hidden. void WebView2::UpdateCoreWebViewVisibility() { - auto strongThis = get_strong(); + auto strongThis = get_strong(); // ensure object lifetime during coroutines auto updateCoreWebViewVisibilityAction = [strongThis]() { if (strongThis->m_coreWebViewController) From 251fed379c35fcdbd5a0e0e97aeda307d124805d Mon Sep 17 00:00:00 2001 From: Keith Mahoney <41657372+kmahone@users.noreply.github.com> Date: Mon, 10 Apr 2023 12:56:17 -0700 Subject: [PATCH 16/40] Update Microsoft.Internal.WinUI.Helix to 0.0.2.6 (#8372) * Microsoft.Internal.WinUI.Helix 0.0.2.5 * Microsoft.Internal.WinUI.Helix 0.0.2.6 * Disable WebView2Tests.ReparentElementTest --------- Co-authored-by: Keith Mahoney (cherry picked from commit a6afb9aceeca9fd951f00daf4b9a2f4ee065a184) --- build/AzurePipelinesTemplates/MUX-ProcessTestResults-Job.yml | 2 +- build/Helix/packages.config | 2 +- dev/WebView2/InteractionTests/WebView2Tests.cs | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build/AzurePipelinesTemplates/MUX-ProcessTestResults-Job.yml b/build/AzurePipelinesTemplates/MUX-ProcessTestResults-Job.yml index 6da13ed57a..3ef7a58ce1 100644 --- a/build/AzurePipelinesTemplates/MUX-ProcessTestResults-Job.yml +++ b/build/AzurePipelinesTemplates/MUX-ProcessTestResults-Job.yml @@ -14,7 +14,7 @@ jobs: timeoutInMinutes: 120 variables: helixOutputFolder: $(Build.SourcesDirectory)\HelixOutput - winuiHelixVersion: 0.0.2.4 + winuiHelixVersion: 0.0.2.6 helixScriptPath: $(Build.SourcesDirectory)\build\Helix\packages\Microsoft.Internal.WinUI.Helix.$(winuiHelixVersion)\scripts\pipeline ${{if eq(parameters.pgoArtifact, '') }}: processHelixFilesExtraArgs: '' diff --git a/build/Helix/packages.config b/build/Helix/packages.config index 80cf4e204f..eed38069a4 100644 --- a/build/Helix/packages.config +++ b/build/Helix/packages.config @@ -4,5 +4,5 @@ - + diff --git a/dev/WebView2/InteractionTests/WebView2Tests.cs b/dev/WebView2/InteractionTests/WebView2Tests.cs index d12c7338fb..9690b54289 100644 --- a/dev/WebView2/InteractionTests/WebView2Tests.cs +++ b/dev/WebView2/InteractionTests/WebView2Tests.cs @@ -1462,8 +1462,9 @@ public void MoveTest() } } - [TestMethod] - [TestProperty("TestSuite", "C")] + // Bug 44117609: WinUI2: WebView2Tests.ReparentElementTest is unreliable and has been disabled + // [TestMethod] + // [TestProperty("TestSuite", "C")] public void ReparentElementTest() { using (var setup = new WebView2TestSetupHelper(new[] { "WebView2 Tests", "navigateToBasicWebView2" })) From f61b5d02fd3031f9d8cbbc539fb83e897e0ad6cf Mon Sep 17 00:00:00 2001 From: Keith Mahoney Date: Tue, 11 Apr 2023 14:09:48 -0700 Subject: [PATCH 17/40] ignore some warnings --- build/PrefastWarnings.ruleset | 4 ++-- dev/dll/Microsoft.UI.Xaml.vcxproj | 1 + test/IXMPTestApp/MSTest/IXMPTestApp.csproj | 2 ++ test/IXMPTestApp/TAEF/IXMPTestApp.TAEF.csproj | 2 ++ test/MUXControlsTestApp/MSTest/MUXControlsTestApp.csproj | 2 ++ test/MUXControlsTestApp/TAEF/MUXControlsTestApp.TAEF.csproj | 2 ++ 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/build/PrefastWarnings.ruleset b/build/PrefastWarnings.ruleset index 1672fffbc9..0fb31c158b 100644 --- a/build/PrefastWarnings.ruleset +++ b/build/PrefastWarnings.ruleset @@ -48,11 +48,11 @@ - + - + diff --git a/dev/dll/Microsoft.UI.Xaml.vcxproj b/dev/dll/Microsoft.UI.Xaml.vcxproj index a4efe8d4ff..2cc90dfe4e 100755 --- a/dev/dll/Microsoft.UI.Xaml.vcxproj +++ b/dev/dll/Microsoft.UI.Xaml.vcxproj @@ -11,6 +11,7 @@ 3 Microsoft.UI.winmd $(MSBuildThisFileDirectory)..\Generated + $(NoWarn);C26496;C26462 diff --git a/test/IXMPTestApp/MSTest/IXMPTestApp.csproj b/test/IXMPTestApp/MSTest/IXMPTestApp.csproj index 8b2c99603a..bfefa05d3c 100644 --- a/test/IXMPTestApp/MSTest/IXMPTestApp.csproj +++ b/test/IXMPTestApp/MSTest/IXMPTestApp.csproj @@ -5,6 +5,8 @@ $(VisualStudioVersion) true PackageReference + $(NoWarn);NU1505 + true diff --git a/test/IXMPTestApp/TAEF/IXMPTestApp.TAEF.csproj b/test/IXMPTestApp/TAEF/IXMPTestApp.TAEF.csproj index 0436d2764c..1d3957f058 100755 --- a/test/IXMPTestApp/TAEF/IXMPTestApp.TAEF.csproj +++ b/test/IXMPTestApp/TAEF/IXMPTestApp.TAEF.csproj @@ -5,6 +5,8 @@ $(DefineConstants);USING_TAEF {02800516-6BE8-42A9-9665-5446896BB5C5} true + $(NoWarn);NU1505 + true {74F24BC4-794D-4CB2-8420-80FF7FDACFE9} diff --git a/test/MUXControlsTestApp/MSTest/MUXControlsTestApp.csproj b/test/MUXControlsTestApp/MSTest/MUXControlsTestApp.csproj index 27c4e2625b..c08f1418be 100644 --- a/test/MUXControlsTestApp/MSTest/MUXControlsTestApp.csproj +++ b/test/MUXControlsTestApp/MSTest/MUXControlsTestApp.csproj @@ -14,6 +14,8 @@ True 0 PackageReference + $(NoWarn);NU1505 + true diff --git a/test/MUXControlsTestApp/TAEF/MUXControlsTestApp.TAEF.csproj b/test/MUXControlsTestApp/TAEF/MUXControlsTestApp.TAEF.csproj index 9cbe65bbe8..8629a88a47 100755 --- a/test/MUXControlsTestApp/TAEF/MUXControlsTestApp.TAEF.csproj +++ b/test/MUXControlsTestApp/TAEF/MUXControlsTestApp.TAEF.csproj @@ -11,6 +11,8 @@ Never 1 OnApplicationRun + $(NoWarn);NU1505 + true From 43e1f9b4e4c033bf5fe4d28ec2caa8313c8c0013 Mon Sep 17 00:00:00 2001 From: kmahone Date: Wed, 12 Apr 2023 09:22:55 -0700 Subject: [PATCH 18/40] use ltsc2019/vse2022:vnext image --- build/WinUI-OB-Official.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/WinUI-OB-Official.yml b/build/WinUI-OB-Official.yml index d17b938869..f64159541c 100644 --- a/build/WinUI-OB-Official.yml +++ b/build/WinUI-OB-Official.yml @@ -23,7 +23,7 @@ variables: NUGET_XMLDOC_MODE: none # Docker image which is used to build the project https://aka.ms/obpipelines/containers - WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:latest' + WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:vnext ' Codeql.Enabled: true # CodeQL once every 3 days on the default branch for all languages its applicable to in that pipeline. From 5da92ee7937b0c06bb70a848957948f6fffe667c Mon Sep 17 00:00:00 2001 From: kmahone Date: Wed, 12 Apr 2023 13:33:27 -0700 Subject: [PATCH 19/40] test pack --- build/WinUI-OB-Official.yml | 554 +++++++++++++++++++----------------- 1 file changed, 290 insertions(+), 264 deletions(-) diff --git a/build/WinUI-OB-Official.yml b/build/WinUI-OB-Official.yml index f64159541c..03844ffc40 100644 --- a/build/WinUI-OB-Official.yml +++ b/build/WinUI-OB-Official.yml @@ -45,145 +45,145 @@ extends: enabled: true stages: - - stage: build - jobs: - - job: main - pool: - type: windows - - strategy: - maxParallel: 10 - matrix: - Release_x86: - buildPlatform: 'x86' - buildConfiguration: 'Release' - PGOBuildMode: 'Optimize' - Release_x64: - buildPlatform: 'x64' - buildConfiguration: 'Release' - PGOBuildMode: 'Optimize' - Release_Arm: - buildPlatform: 'arm' - buildConfiguration: 'Release' - Release_Arm64: - buildPlatform: 'arm64' - buildConfiguration: 'Release' + # - stage: build + # jobs: + # - job: main + # pool: + # type: windows + + # strategy: + # maxParallel: 10 + # matrix: + # Release_x86: + # buildPlatform: 'x86' + # buildConfiguration: 'Release' + # PGOBuildMode: 'Optimize' + # Release_x64: + # buildPlatform: 'x64' + # buildConfiguration: 'Release' + # PGOBuildMode: 'Optimize' + # Release_Arm: + # buildPlatform: 'arm' + # buildConfiguration: 'Release' + # Release_Arm64: + # buildPlatform: 'arm64' + # buildConfiguration: 'Release' - variables: - appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages - buildOutputDir : $(Build.SourcesDirectory)\BuildOutput - ob_outputDirectory: $(build.artifactStagingDirectory) - ob_artifactSuffix: _$(buildPlatform)_$(buildConfiguration) - ob_git_fetchDepth: 0 # This disables shallow git fetch. This is required for the restore-pgodb.ps1 script to work correctly. - - steps: - - - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self - - - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self - - - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - - powershell: | - ls env: - displayName: 'display env vars' - continueOnError: true - - - powershell: | - ls "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" - displayName: 'List SDKS' - continueOnError: true - - # Download and extract nuget package with non-stubbed MicrosoftTelemetry.h header - - task: DownloadPackage@1 - displayName: 'Download Microsoft.Telemetry.Inbox.Native' - inputs: - feed: '/3415933f-ac0d-4766-8c0a-3f4c247c25f5' # 0 - view: 'ef61a1c1-003b-4a27-bde5-beec8301021b' # Release - definition: '2fe60c09-c66f-4275-ae2d-f015c7170c72' # Microsoft.Telemetry.Inbox.Native - version: '10.0.18362.1-190318-1202.19h1-release.amd64fre' # latest version - downloadPath: '$(System.DefaultWorkingDirectory)' # download and extract to repo root - - # Replace the stubbed MicrosoftTelemetry.h with the real one - # Delete the existing stubbed MicrosoftTelemetry.h first, to ensure that if it is no longer at the expected path that the task, and build, fails - - script: | - del $(System.DefaultWorkingDirectory)\dev\telemetry\MicrosoftTelemetry.h - move /Y $(System.DefaultWorkingDirectory)\build\native\inc\MicrosoftTelemetry.h $(System.DefaultWorkingDirectory)\dev\telemetry\ - failOnStderr: true - displayName: 'Replace existing stubbed MicrosoftTelemetry.h header with the real version from the nuget package' - - - template: build\AzurePipelinesTemplates\MUX-RestorePgo-Steps.yml@self - - - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - displayName: 'NuGet restore MUXControls.sln' - inputs: - restoreSolution: $(Build.SourcesDirectory)\MUXControls.sln - feedsToUse: config - nugetConfigPath: nuget.config - - - task: VSBuild@1 - displayName: 'Build solution MUXControls.sln' - inputs: - solution: '$(Build.SourcesDirectory)\MUXControls.sln' - vsVersion: 17.0 - platform: $(buildPlatform) - configuration: $(buildConfiguration) - msbuildArgs: '/restore /p:AppxPackageDir=$(appxPackageDir) /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.ArtifactStagingDirectory)/MUXControls.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' - - - powershell: | - Get-ChildItem -Recurse $(Build.SourcesDirectory)\BuildOutput - displayName: 'list contents of BuildOutput' - continueOnError: true - - - task: onebranch.pipeline.signing@1 # https://aka.ms/obpipelines/signing - displayName: 'Sign output (BuildOutput)' - inputs: - command: 'sign' - signing_environment: 'azure-ado' - files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' - search_root: $(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration) - signing_profile: external_distribution - - # The test apps build directly into appxPackageDir, so we sign there also. - - task: onebranch.pipeline.signing@1 - displayName: 'Sign output (appxPackageDir)' - inputs: - command: 'sign' - signing_environment: 'azure-ado' - files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' - search_root: $(appxPackageDir) - signing_profile: external_distribution - - - template: build\AzurePipelinesTemplates\MUX-SourceIndexPDBs-Steps.yml@self - parameters: - buildOutputDir: $(buildOutputDir) - - - task: PublishSymbols@2 # Publish symbols to internal symweb - continueOnError: true - displayName: 'Publish symbols (internal)' - inputs: - SearchPattern: $(buildOutputDir)/$(buildConfiguration)/$(buildPlatform)/**/*.pdb - SymbolServerType: 'TeamServices' - - - template: build\AzurePipelinesTemplates\MUX-MakeFrameworkPackages-Steps.yml@self - parameters: - buildOutputDir: $(buildOutputDir) - signOutput: true - - - task: powershell@2 - displayName: 'Copy files to staging dir' - inputs: - targetType: filePath - filePath: build\CopyFilesToStagingDir.ps1 - arguments: -BuildOutputDir '$(buildOutputDir)' -PublishDir '$(Build.ArtifactStagingDirectory)' -Platform '$(buildPlatform)' -Configuration '$(buildConfiguration)' - - - powershell: | - Get-ChildItem -Recurse $(Build.ArtifactStagingDirectory) - displayName: 'list contents of ArtifactStagingDirectory' - continueOnError: true + # variables: + # appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages + # buildOutputDir : $(Build.SourcesDirectory)\BuildOutput + # ob_outputDirectory: $(build.artifactStagingDirectory) + # ob_artifactSuffix: _$(buildPlatform)_$(buildConfiguration) + # ob_git_fetchDepth: 0 # This disables shallow git fetch. This is required for the restore-pgodb.ps1 script to work correctly. + + # steps: + + # - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self + + # - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + # - powershell: | + # ls env: + # displayName: 'display env vars' + # continueOnError: true + + # - powershell: | + # ls "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" + # displayName: 'List SDKS' + # continueOnError: true + + # # Download and extract nuget package with non-stubbed MicrosoftTelemetry.h header + # - task: DownloadPackage@1 + # displayName: 'Download Microsoft.Telemetry.Inbox.Native' + # inputs: + # feed: '/3415933f-ac0d-4766-8c0a-3f4c247c25f5' # 0 + # view: 'ef61a1c1-003b-4a27-bde5-beec8301021b' # Release + # definition: '2fe60c09-c66f-4275-ae2d-f015c7170c72' # Microsoft.Telemetry.Inbox.Native + # version: '10.0.18362.1-190318-1202.19h1-release.amd64fre' # latest version + # downloadPath: '$(System.DefaultWorkingDirectory)' # download and extract to repo root + + # # Replace the stubbed MicrosoftTelemetry.h with the real one + # # Delete the existing stubbed MicrosoftTelemetry.h first, to ensure that if it is no longer at the expected path that the task, and build, fails + # - script: | + # del $(System.DefaultWorkingDirectory)\dev\telemetry\MicrosoftTelemetry.h + # move /Y $(System.DefaultWorkingDirectory)\build\native\inc\MicrosoftTelemetry.h $(System.DefaultWorkingDirectory)\dev\telemetry\ + # failOnStderr: true + # displayName: 'Replace existing stubbed MicrosoftTelemetry.h header with the real version from the nuget package' + + # - template: build\AzurePipelinesTemplates\MUX-RestorePgo-Steps.yml@self + + # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + # displayName: 'NuGet restore MUXControls.sln' + # inputs: + # restoreSolution: $(Build.SourcesDirectory)\MUXControls.sln + # feedsToUse: config + # nugetConfigPath: nuget.config + + # - task: VSBuild@1 + # displayName: 'Build solution MUXControls.sln' + # inputs: + # solution: '$(Build.SourcesDirectory)\MUXControls.sln' + # vsVersion: 17.0 + # platform: $(buildPlatform) + # configuration: $(buildConfiguration) + # msbuildArgs: '/restore /p:AppxPackageDir=$(appxPackageDir) /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.ArtifactStagingDirectory)/MUXControls.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' + + # - powershell: | + # Get-ChildItem -Recurse $(Build.SourcesDirectory)\BuildOutput + # displayName: 'list contents of BuildOutput' + # continueOnError: true + + # - task: onebranch.pipeline.signing@1 # https://aka.ms/obpipelines/signing + # displayName: 'Sign output (BuildOutput)' + # inputs: + # command: 'sign' + # signing_environment: 'azure-ado' + # files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + # search_root: $(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration) + # signing_profile: external_distribution + + # # The test apps build directly into appxPackageDir, so we sign there also. + # - task: onebranch.pipeline.signing@1 + # displayName: 'Sign output (appxPackageDir)' + # inputs: + # command: 'sign' + # signing_environment: 'azure-ado' + # files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + # search_root: $(appxPackageDir) + # signing_profile: external_distribution + + # - template: build\AzurePipelinesTemplates\MUX-SourceIndexPDBs-Steps.yml@self + # parameters: + # buildOutputDir: $(buildOutputDir) + + # - task: PublishSymbols@2 # Publish symbols to internal symweb + # continueOnError: true + # displayName: 'Publish symbols (internal)' + # inputs: + # SearchPattern: $(buildOutputDir)/$(buildConfiguration)/$(buildPlatform)/**/*.pdb + # SymbolServerType: 'TeamServices' + + # - template: build\AzurePipelinesTemplates\MUX-MakeFrameworkPackages-Steps.yml@self + # parameters: + # buildOutputDir: $(buildOutputDir) + # signOutput: true + + # - task: powershell@2 + # displayName: 'Copy files to staging dir' + # inputs: + # targetType: filePath + # filePath: build\CopyFilesToStagingDir.ps1 + # arguments: -BuildOutputDir '$(buildOutputDir)' -PublishDir '$(Build.ArtifactStagingDirectory)' -Platform '$(buildPlatform)' -Configuration '$(buildConfiguration)' + + # - powershell: | + # Get-ChildItem -Recurse $(Build.ArtifactStagingDirectory) + # displayName: 'list contents of ArtifactStagingDirectory' + # continueOnError: true - stage: pack - dependsOn: build + # dependsOn: build jobs: - job: nupkg pool: @@ -197,6 +197,8 @@ extends: steps: - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + - powershell: | ls env: displayName: 'display env vars' @@ -209,21 +211,45 @@ extends: artifactName: drop_build_main_x64_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(System.DefinitionId) + buildVersionToDownload: 'specific' + pipelineId : 68261469 + - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_x86_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(System.DefinitionId) + buildVersionToDownload: 'specific' + pipelineId : 68261469 + - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_arm_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(System.DefinitionId) + buildVersionToDownload: 'specific' + pipelineId : 68261469 + - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_arm64_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop + buildType: specific + project: $(System.TeamProjectId) + definition: $(System.DefinitionId) + buildVersionToDownload: 'specific' + pipelineId : 68261469 + - powershell: | Get-ChildItem -Recurse $(Build.SourcesDirectory)\Artifacts displayName: 'list contents of Artifacts' @@ -270,133 +296,133 @@ extends: } ] - - job: vpack - pool: - type: windows - variables: - windowsPublicsWinmdVersion: 0.0.2 - internalSDKFeedUrl: https://pkgs.dev.azure.com/microsoft/WinUI/_packaging/WinUIInternalWindowsSDK/nuget/v3/index.json - publishDir: $(Build.SourcesDirectory)\publish - ob_outputDirectory: $(publishDir) - - steps: - - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self - - - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - - task: NuGetAuthenticate@0 - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: drop_build_main_x64_Release - targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: drop_build_main_x86_Release - targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: drop_build_main_arm_Release - targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: drop_build_main_arm64_Release - targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - # This contains the OS internal version of windows.winmd which is required for us to re-merge our winmd so that it can be used from OS repo. - - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - displayName: 'nuget install Microsoft.Internal.WinUI.WindowsPublicsWinmd' - inputs: - command: custom - arguments: 'install Microsoft.Internal.WinUI.WindowsPublicsWinmd -NonInteractive -Version $(windowsPublicsWinmdVersion) -Source $(internalSDKFeedUrl) -OutputDirectory packages' - - - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - displayName: 'NuGet restore dev\dll\packages.config' - inputs: - restoreSolution: dev\dll\packages.config - feedsToUse: config - nugetConfigPath: nuget.config - restoreDirectory: $(Build.SourcesDirectory)\packages - - - script: | - $(Build.SourcesDirectory)\build\CreateCBSVPack.cmd -releaseFolder $(Build.SourcesDirectory)\Artifacts\drop\Release -publicsRoot $(Build.SourcesDirectory)\packages\Microsoft.Internal.WinUI.WindowsPublicsWinmd.$(windowsPublicsWinmdVersion) -publishDir $(publishDir) - displayName: CreateCBSVPack.cmd - name: createvpack - failOnStderr: true - # Note: This task sets the 'vpackversion' variable that is used in the Job below. - - - powershell: | - Get-ChildItem -Recurse $(publishDir) - displayName: 'list contents of publishDir' - continueOnError: true - - # In OneBranch, a single Job can only publish one vpack. So we have a separate Job 'pushvpack' to push each of the - # vpacks created in the previous Job. - - job: pushvpack - dependsOn: vpack - pool: - type: windows - strategy: - maxParallel: 10 - matrix: - CBS_x86: - vpackName: MicrosoftUIXamlInbox_x86 - sourceSubDir: CBS\x86 - CBS_x64: - vpackName: MicrosoftUIXamlInbox_x64 - sourceSubDir: CBS\x64 - CBS_Arm: - vpackName: MicrosoftUIXamlInbox_arm - sourceSubDir: CBS\arm - CBS_Arm64: - vpackName: MicrosoftUIXamlInbox_arm64 - sourceSubDir: CBS\arm64 - CBS_Winmd: - vpackName: MicrosoftUIXamlInboxWinmd - sourceSubDir: CBS\winmd - WinUI: - vpackName: Microsoft.UI.Xaml - sourceSubDir: WinUIVpack - variables: + # - job: vpack + # pool: + # type: windows + # variables: + # windowsPublicsWinmdVersion: 0.0.2 + # internalSDKFeedUrl: https://pkgs.dev.azure.com/microsoft/WinUI/_packaging/WinUIInternalWindowsSDK/nuget/v3/index.json + # publishDir: $(Build.SourcesDirectory)\publish + # ob_outputDirectory: $(publishDir) + + # steps: + # - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + # - task: NuGetAuthenticate@0 + + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifactName: drop_build_main_x64_Release + # targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifactName: drop_build_main_x86_Release + # targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifactName: drop_build_main_arm_Release + # targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifactName: drop_build_main_arm64_Release + # targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # # This contains the OS internal version of windows.winmd which is required for us to re-merge our winmd so that it can be used from OS repo. + # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + # displayName: 'nuget install Microsoft.Internal.WinUI.WindowsPublicsWinmd' + # inputs: + # command: custom + # arguments: 'install Microsoft.Internal.WinUI.WindowsPublicsWinmd -NonInteractive -Version $(windowsPublicsWinmdVersion) -Source $(internalSDKFeedUrl) -OutputDirectory packages' + + # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + # displayName: 'NuGet restore dev\dll\packages.config' + # inputs: + # restoreSolution: dev\dll\packages.config + # feedsToUse: config + # nugetConfigPath: nuget.config + # restoreDirectory: $(Build.SourcesDirectory)\packages + + # - script: | + # $(Build.SourcesDirectory)\build\CreateCBSVPack.cmd -releaseFolder $(Build.SourcesDirectory)\Artifacts\drop\Release -publicsRoot $(Build.SourcesDirectory)\packages\Microsoft.Internal.WinUI.WindowsPublicsWinmd.$(windowsPublicsWinmdVersion) -publishDir $(publishDir) + # displayName: CreateCBSVPack.cmd + # name: createvpack + # failOnStderr: true + # # Note: This task sets the 'vpackversion' variable that is used in the Job below. + + # - powershell: | + # Get-ChildItem -Recurse $(publishDir) + # displayName: 'list contents of publishDir' + # continueOnError: true + + # # In OneBranch, a single Job can only publish one vpack. So we have a separate Job 'pushvpack' to push each of the + # # vpacks created in the previous Job. + # - job: pushvpack + # dependsOn: vpack + # pool: + # type: windows + # strategy: + # maxParallel: 10 + # matrix: + # CBS_x86: + # vpackName: MicrosoftUIXamlInbox_x86 + # sourceSubDir: CBS\x86 + # CBS_x64: + # vpackName: MicrosoftUIXamlInbox_x64 + # sourceSubDir: CBS\x64 + # CBS_Arm: + # vpackName: MicrosoftUIXamlInbox_arm + # sourceSubDir: CBS\arm + # CBS_Arm64: + # vpackName: MicrosoftUIXamlInbox_arm64 + # sourceSubDir: CBS\arm64 + # CBS_Winmd: + # vpackName: MicrosoftUIXamlInboxWinmd + # sourceSubDir: CBS\winmd + # WinUI: + # vpackName: Microsoft.UI.Xaml + # sourceSubDir: WinUIVpack + # variables: - publishDir: $(Build.SourcesDirectory)\publish - vpackDir: $(publishDir)\$(sourceSubDir) - ob_outputDirectory: $(vpackDir) - ob_artifactSuffix: _$(vpackName) - - # createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) - ob_createvpack_enabled: true - ob_createvpack_packagename: $(vpackName) - ob_createvpack_owneralias: kmahone - ob_createvpack_description: $(vpackName) - ob_createvpack_provData: true - ob_createvpack_versionAs: string - vpackversion: $[ dependencies.vpack.outputs['createvpack.vpackversion'] ] - ob_createvpack_version: $(vpackversion)-kmahonetest4 - ob_createvpack_verbose: true - ob_createvpack_topLevelRetries: 0 - ob_createvpack_failOnStdErr: true - ob_createvpack_taskLogVerbosity: Detailed - - steps: - - - powershell: | - ls env: - displayName: 'display env vars' - continueOnError: true - - - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: drop_pack_vpack - targetPath: $(publishDir) - - - powershell: | - Get-ChildItem -Recurse $(publishDir) - displayName: 'list contents of publishDir' - continueOnError: true + # publishDir: $(Build.SourcesDirectory)\publish + # vpackDir: $(publishDir)\$(sourceSubDir) + # ob_outputDirectory: $(vpackDir) + # ob_artifactSuffix: _$(vpackName) + + # # createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) + # ob_createvpack_enabled: true + # ob_createvpack_packagename: $(vpackName) + # ob_createvpack_owneralias: kmahone + # ob_createvpack_description: $(vpackName) + # ob_createvpack_provData: true + # ob_createvpack_versionAs: string + # vpackversion: $[ dependencies.vpack.outputs['createvpack.vpackversion'] ] + # ob_createvpack_version: $(vpackversion)-kmahonetest4 + # ob_createvpack_verbose: true + # ob_createvpack_topLevelRetries: 0 + # ob_createvpack_failOnStdErr: true + # ob_createvpack_taskLogVerbosity: Detailed + + # steps: + + # - powershell: | + # ls env: + # displayName: 'display env vars' + # continueOnError: true + + # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + # - task: DownloadPipelineArtifact@2 + # inputs: + # artifactName: drop_pack_vpack + # targetPath: $(publishDir) + + # - powershell: | + # Get-ChildItem -Recurse $(publishDir) + # displayName: 'list contents of publishDir' + # continueOnError: true \ No newline at end of file From 81710da8da5cfdeda7bca1de0c78aff9b6c4526d Mon Sep 17 00:00:00 2001 From: kmahone Date: Wed, 12 Apr 2023 15:15:46 -0700 Subject: [PATCH 20/40] full build --- build/WinUI-OB-Official.yml | 552 +++++++++++++++++------------------- 1 file changed, 264 insertions(+), 288 deletions(-) diff --git a/build/WinUI-OB-Official.yml b/build/WinUI-OB-Official.yml index 03844ffc40..8391b35f0b 100644 --- a/build/WinUI-OB-Official.yml +++ b/build/WinUI-OB-Official.yml @@ -45,145 +45,145 @@ extends: enabled: true stages: - # - stage: build - # jobs: - # - job: main - # pool: - # type: windows - - # strategy: - # maxParallel: 10 - # matrix: - # Release_x86: - # buildPlatform: 'x86' - # buildConfiguration: 'Release' - # PGOBuildMode: 'Optimize' - # Release_x64: - # buildPlatform: 'x64' - # buildConfiguration: 'Release' - # PGOBuildMode: 'Optimize' - # Release_Arm: - # buildPlatform: 'arm' - # buildConfiguration: 'Release' - # Release_Arm64: - # buildPlatform: 'arm64' - # buildConfiguration: 'Release' + - stage: build + jobs: + - job: main + pool: + type: windows + + strategy: + maxParallel: 10 + matrix: + Release_x86: + buildPlatform: 'x86' + buildConfiguration: 'Release' + PGOBuildMode: 'Optimize' + Release_x64: + buildPlatform: 'x64' + buildConfiguration: 'Release' + PGOBuildMode: 'Optimize' + Release_Arm: + buildPlatform: 'arm' + buildConfiguration: 'Release' + Release_Arm64: + buildPlatform: 'arm64' + buildConfiguration: 'Release' - # variables: - # appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages - # buildOutputDir : $(Build.SourcesDirectory)\BuildOutput - # ob_outputDirectory: $(build.artifactStagingDirectory) - # ob_artifactSuffix: _$(buildPlatform)_$(buildConfiguration) - # ob_git_fetchDepth: 0 # This disables shallow git fetch. This is required for the restore-pgodb.ps1 script to work correctly. - - # steps: - - # - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self - - # - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self - - # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - # - powershell: | - # ls env: - # displayName: 'display env vars' - # continueOnError: true - - # - powershell: | - # ls "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" - # displayName: 'List SDKS' - # continueOnError: true - - # # Download and extract nuget package with non-stubbed MicrosoftTelemetry.h header - # - task: DownloadPackage@1 - # displayName: 'Download Microsoft.Telemetry.Inbox.Native' - # inputs: - # feed: '/3415933f-ac0d-4766-8c0a-3f4c247c25f5' # 0 - # view: 'ef61a1c1-003b-4a27-bde5-beec8301021b' # Release - # definition: '2fe60c09-c66f-4275-ae2d-f015c7170c72' # Microsoft.Telemetry.Inbox.Native - # version: '10.0.18362.1-190318-1202.19h1-release.amd64fre' # latest version - # downloadPath: '$(System.DefaultWorkingDirectory)' # download and extract to repo root - - # # Replace the stubbed MicrosoftTelemetry.h with the real one - # # Delete the existing stubbed MicrosoftTelemetry.h first, to ensure that if it is no longer at the expected path that the task, and build, fails - # - script: | - # del $(System.DefaultWorkingDirectory)\dev\telemetry\MicrosoftTelemetry.h - # move /Y $(System.DefaultWorkingDirectory)\build\native\inc\MicrosoftTelemetry.h $(System.DefaultWorkingDirectory)\dev\telemetry\ - # failOnStderr: true - # displayName: 'Replace existing stubbed MicrosoftTelemetry.h header with the real version from the nuget package' - - # - template: build\AzurePipelinesTemplates\MUX-RestorePgo-Steps.yml@self - - # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - # displayName: 'NuGet restore MUXControls.sln' - # inputs: - # restoreSolution: $(Build.SourcesDirectory)\MUXControls.sln - # feedsToUse: config - # nugetConfigPath: nuget.config - - # - task: VSBuild@1 - # displayName: 'Build solution MUXControls.sln' - # inputs: - # solution: '$(Build.SourcesDirectory)\MUXControls.sln' - # vsVersion: 17.0 - # platform: $(buildPlatform) - # configuration: $(buildConfiguration) - # msbuildArgs: '/restore /p:AppxPackageDir=$(appxPackageDir) /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.ArtifactStagingDirectory)/MUXControls.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' - - # - powershell: | - # Get-ChildItem -Recurse $(Build.SourcesDirectory)\BuildOutput - # displayName: 'list contents of BuildOutput' - # continueOnError: true - - # - task: onebranch.pipeline.signing@1 # https://aka.ms/obpipelines/signing - # displayName: 'Sign output (BuildOutput)' - # inputs: - # command: 'sign' - # signing_environment: 'azure-ado' - # files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' - # search_root: $(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration) - # signing_profile: external_distribution - - # # The test apps build directly into appxPackageDir, so we sign there also. - # - task: onebranch.pipeline.signing@1 - # displayName: 'Sign output (appxPackageDir)' - # inputs: - # command: 'sign' - # signing_environment: 'azure-ado' - # files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' - # search_root: $(appxPackageDir) - # signing_profile: external_distribution - - # - template: build\AzurePipelinesTemplates\MUX-SourceIndexPDBs-Steps.yml@self - # parameters: - # buildOutputDir: $(buildOutputDir) - - # - task: PublishSymbols@2 # Publish symbols to internal symweb - # continueOnError: true - # displayName: 'Publish symbols (internal)' - # inputs: - # SearchPattern: $(buildOutputDir)/$(buildConfiguration)/$(buildPlatform)/**/*.pdb - # SymbolServerType: 'TeamServices' - - # - template: build\AzurePipelinesTemplates\MUX-MakeFrameworkPackages-Steps.yml@self - # parameters: - # buildOutputDir: $(buildOutputDir) - # signOutput: true - - # - task: powershell@2 - # displayName: 'Copy files to staging dir' - # inputs: - # targetType: filePath - # filePath: build\CopyFilesToStagingDir.ps1 - # arguments: -BuildOutputDir '$(buildOutputDir)' -PublishDir '$(Build.ArtifactStagingDirectory)' -Platform '$(buildPlatform)' -Configuration '$(buildConfiguration)' - - # - powershell: | - # Get-ChildItem -Recurse $(Build.ArtifactStagingDirectory) - # displayName: 'list contents of ArtifactStagingDirectory' - # continueOnError: true + variables: + appxPackageDir : $(build.artifactStagingDirectory)\$(buildConfiguration)\$(buildPlatform)\AppxPackages + buildOutputDir : $(Build.SourcesDirectory)\BuildOutput + ob_outputDirectory: $(build.artifactStagingDirectory) + ob_artifactSuffix: _$(buildPlatform)_$(buildConfiguration) + ob_git_fetchDepth: 0 # This disables shallow git fetch. This is required for the restore-pgodb.ps1 script to work correctly. + + steps: + + - template: build\AzurePipelinesTemplates\MUX-PopulateBuildDateAndRevision-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - powershell: | + ls env: + displayName: 'display env vars' + continueOnError: true + + - powershell: | + ls "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots" + displayName: 'List SDKS' + continueOnError: true + + # Download and extract nuget package with non-stubbed MicrosoftTelemetry.h header + - task: DownloadPackage@1 + displayName: 'Download Microsoft.Telemetry.Inbox.Native' + inputs: + feed: '/3415933f-ac0d-4766-8c0a-3f4c247c25f5' # 0 + view: 'ef61a1c1-003b-4a27-bde5-beec8301021b' # Release + definition: '2fe60c09-c66f-4275-ae2d-f015c7170c72' # Microsoft.Telemetry.Inbox.Native + version: '10.0.18362.1-190318-1202.19h1-release.amd64fre' # latest version + downloadPath: '$(System.DefaultWorkingDirectory)' # download and extract to repo root + + # Replace the stubbed MicrosoftTelemetry.h with the real one + # Delete the existing stubbed MicrosoftTelemetry.h first, to ensure that if it is no longer at the expected path that the task, and build, fails + - script: | + del $(System.DefaultWorkingDirectory)\dev\telemetry\MicrosoftTelemetry.h + move /Y $(System.DefaultWorkingDirectory)\build\native\inc\MicrosoftTelemetry.h $(System.DefaultWorkingDirectory)\dev\telemetry\ + failOnStderr: true + displayName: 'Replace existing stubbed MicrosoftTelemetry.h header with the real version from the nuget package' + + - template: build\AzurePipelinesTemplates\MUX-RestorePgo-Steps.yml@self + + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'NuGet restore MUXControls.sln' + inputs: + restoreSolution: $(Build.SourcesDirectory)\MUXControls.sln + feedsToUse: config + nugetConfigPath: nuget.config + + - task: VSBuild@1 + displayName: 'Build solution MUXControls.sln' + inputs: + solution: '$(Build.SourcesDirectory)\MUXControls.sln' + vsVersion: 17.0 + platform: $(buildPlatform) + configuration: $(buildConfiguration) + msbuildArgs: '/restore /p:AppxPackageDir=$(appxPackageDir) /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.ArtifactStagingDirectory)/MUXControls.$(buildPlatform).$(buildConfiguration).binlog /p:MUXVersionBuild=$(builddate_yymm) /p:MUXVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)' + + - powershell: | + Get-ChildItem -Recurse $(Build.SourcesDirectory)\BuildOutput + displayName: 'list contents of BuildOutput' + continueOnError: true + + - task: onebranch.pipeline.signing@1 # https://aka.ms/obpipelines/signing + displayName: 'Sign output (BuildOutput)' + inputs: + command: 'sign' + signing_environment: 'azure-ado' + files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + search_root: $(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration) + signing_profile: external_distribution + + # The test apps build directly into appxPackageDir, so we sign there also. + - task: onebranch.pipeline.signing@1 + displayName: 'Sign output (appxPackageDir)' + inputs: + command: 'sign' + signing_environment: 'azure-ado' + files_to_sign: '**/*.dll;**/*.winmd;**/*.ps1;**/*.psd1;**/*.msix;**/*.appx' + search_root: $(appxPackageDir) + signing_profile: external_distribution + + - template: build\AzurePipelinesTemplates\MUX-SourceIndexPDBs-Steps.yml@self + parameters: + buildOutputDir: $(buildOutputDir) + + - task: PublishSymbols@2 # Publish symbols to internal symweb + continueOnError: true + displayName: 'Publish symbols (internal)' + inputs: + SearchPattern: $(buildOutputDir)/$(buildConfiguration)/$(buildPlatform)/**/*.pdb + SymbolServerType: 'TeamServices' + + - template: build\AzurePipelinesTemplates\MUX-MakeFrameworkPackages-Steps.yml@self + parameters: + buildOutputDir: $(buildOutputDir) + signOutput: true + + - task: powershell@2 + displayName: 'Copy files to staging dir' + inputs: + targetType: filePath + filePath: build\CopyFilesToStagingDir.ps1 + arguments: -BuildOutputDir '$(buildOutputDir)' -PublishDir '$(Build.ArtifactStagingDirectory)' -Platform '$(buildPlatform)' -Configuration '$(buildConfiguration)' + + - powershell: | + Get-ChildItem -Recurse $(Build.ArtifactStagingDirectory) + displayName: 'list contents of ArtifactStagingDirectory' + continueOnError: true - stage: pack - # dependsOn: build + dependsOn: build jobs: - job: nupkg pool: @@ -211,45 +211,21 @@ extends: artifactName: drop_build_main_x64_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop - buildType: specific - project: $(System.TeamProjectId) - definition: $(System.DefinitionId) - buildVersionToDownload: 'specific' - pipelineId : 68261469 - - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_x86_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop - buildType: specific - project: $(System.TeamProjectId) - definition: $(System.DefinitionId) - buildVersionToDownload: 'specific' - pipelineId : 68261469 - - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_arm_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop - buildType: specific - project: $(System.TeamProjectId) - definition: $(System.DefinitionId) - buildVersionToDownload: 'specific' - pipelineId : 68261469 - - task: DownloadPipelineArtifact@2 inputs: artifactName: drop_build_main_arm64_Release targetPath: $(Build.SourcesDirectory)\Artifacts\drop - buildType: specific - project: $(System.TeamProjectId) - definition: $(System.DefinitionId) - buildVersionToDownload: 'specific' - pipelineId : 68261469 - - powershell: | Get-ChildItem -Recurse $(Build.SourcesDirectory)\Artifacts displayName: 'list contents of Artifacts' @@ -296,133 +272,133 @@ extends: } ] - # - job: vpack - # pool: - # type: windows - # variables: - # windowsPublicsWinmdVersion: 0.0.2 - # internalSDKFeedUrl: https://pkgs.dev.azure.com/microsoft/WinUI/_packaging/WinUIInternalWindowsSDK/nuget/v3/index.json - # publishDir: $(Build.SourcesDirectory)\publish - # ob_outputDirectory: $(publishDir) - - # steps: - # - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self - - # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - # - task: NuGetAuthenticate@0 - - # - task: DownloadPipelineArtifact@2 - # inputs: - # artifactName: drop_build_main_x64_Release - # targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - # - task: DownloadPipelineArtifact@2 - # inputs: - # artifactName: drop_build_main_x86_Release - # targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - # - task: DownloadPipelineArtifact@2 - # inputs: - # artifactName: drop_build_main_arm_Release - # targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - # - task: DownloadPipelineArtifact@2 - # inputs: - # artifactName: drop_build_main_arm64_Release - # targetPath: $(Build.SourcesDirectory)\Artifacts\drop - - # # This contains the OS internal version of windows.winmd which is required for us to re-merge our winmd so that it can be used from OS repo. - # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - # displayName: 'nuget install Microsoft.Internal.WinUI.WindowsPublicsWinmd' - # inputs: - # command: custom - # arguments: 'install Microsoft.Internal.WinUI.WindowsPublicsWinmd -NonInteractive -Version $(windowsPublicsWinmdVersion) -Source $(internalSDKFeedUrl) -OutputDirectory packages' - - # - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 - # displayName: 'NuGet restore dev\dll\packages.config' - # inputs: - # restoreSolution: dev\dll\packages.config - # feedsToUse: config - # nugetConfigPath: nuget.config - # restoreDirectory: $(Build.SourcesDirectory)\packages - - # - script: | - # $(Build.SourcesDirectory)\build\CreateCBSVPack.cmd -releaseFolder $(Build.SourcesDirectory)\Artifacts\drop\Release -publicsRoot $(Build.SourcesDirectory)\packages\Microsoft.Internal.WinUI.WindowsPublicsWinmd.$(windowsPublicsWinmdVersion) -publishDir $(publishDir) - # displayName: CreateCBSVPack.cmd - # name: createvpack - # failOnStderr: true - # # Note: This task sets the 'vpackversion' variable that is used in the Job below. - - # - powershell: | - # Get-ChildItem -Recurse $(publishDir) - # displayName: 'list contents of publishDir' - # continueOnError: true - - # # In OneBranch, a single Job can only publish one vpack. So we have a separate Job 'pushvpack' to push each of the - # # vpacks created in the previous Job. - # - job: pushvpack - # dependsOn: vpack - # pool: - # type: windows - # strategy: - # maxParallel: 10 - # matrix: - # CBS_x86: - # vpackName: MicrosoftUIXamlInbox_x86 - # sourceSubDir: CBS\x86 - # CBS_x64: - # vpackName: MicrosoftUIXamlInbox_x64 - # sourceSubDir: CBS\x64 - # CBS_Arm: - # vpackName: MicrosoftUIXamlInbox_arm - # sourceSubDir: CBS\arm - # CBS_Arm64: - # vpackName: MicrosoftUIXamlInbox_arm64 - # sourceSubDir: CBS\arm64 - # CBS_Winmd: - # vpackName: MicrosoftUIXamlInboxWinmd - # sourceSubDir: CBS\winmd - # WinUI: - # vpackName: Microsoft.UI.Xaml - # sourceSubDir: WinUIVpack - # variables: + - job: vpack + pool: + type: windows + variables: + windowsPublicsWinmdVersion: 0.0.2 + internalSDKFeedUrl: https://pkgs.dev.azure.com/microsoft/WinUI/_packaging/WinUIInternalWindowsSDK/nuget/v3/index.json + publishDir: $(Build.SourcesDirectory)\publish + ob_outputDirectory: $(publishDir) + + steps: + - template: build\AzurePipelinesTemplates\MUX-InstallNuget-Steps.yml@self + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - task: NuGetAuthenticate@0 + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_x86_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_build_main_arm64_Release + targetPath: $(Build.SourcesDirectory)\Artifacts\drop + + # This contains the OS internal version of windows.winmd which is required for us to re-merge our winmd so that it can be used from OS repo. + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'nuget install Microsoft.Internal.WinUI.WindowsPublicsWinmd' + inputs: + command: custom + arguments: 'install Microsoft.Internal.WinUI.WindowsPublicsWinmd -NonInteractive -Version $(windowsPublicsWinmdVersion) -Source $(internalSDKFeedUrl) -OutputDirectory packages' + + - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 + displayName: 'NuGet restore dev\dll\packages.config' + inputs: + restoreSolution: dev\dll\packages.config + feedsToUse: config + nugetConfigPath: nuget.config + restoreDirectory: $(Build.SourcesDirectory)\packages + + - script: | + $(Build.SourcesDirectory)\build\CreateCBSVPack.cmd -releaseFolder $(Build.SourcesDirectory)\Artifacts\drop\Release -publicsRoot $(Build.SourcesDirectory)\packages\Microsoft.Internal.WinUI.WindowsPublicsWinmd.$(windowsPublicsWinmdVersion) -publishDir $(publishDir) + displayName: CreateCBSVPack.cmd + name: createvpack + failOnStderr: true + # Note: This task sets the 'vpackversion' variable that is used in the Job below. + + - powershell: | + Get-ChildItem -Recurse $(publishDir) + displayName: 'list contents of publishDir' + continueOnError: true + + # In OneBranch, a single Job can only publish one vpack. So we have a separate Job 'pushvpack' to push each of the + # vpacks created in the previous Job. + - job: pushvpack + dependsOn: vpack + pool: + type: windows + strategy: + maxParallel: 10 + matrix: + CBS_x86: + vpackName: MicrosoftUIXamlInbox_x86 + sourceSubDir: CBS\x86 + CBS_x64: + vpackName: MicrosoftUIXamlInbox_x64 + sourceSubDir: CBS\x64 + CBS_Arm: + vpackName: MicrosoftUIXamlInbox_arm + sourceSubDir: CBS\arm + CBS_Arm64: + vpackName: MicrosoftUIXamlInbox_arm64 + sourceSubDir: CBS\arm64 + CBS_Winmd: + vpackName: MicrosoftUIXamlInboxWinmd + sourceSubDir: CBS\winmd + WinUI: + vpackName: Microsoft.UI.Xaml + sourceSubDir: WinUIVpack + variables: - # publishDir: $(Build.SourcesDirectory)\publish - # vpackDir: $(publishDir)\$(sourceSubDir) - # ob_outputDirectory: $(vpackDir) - # ob_artifactSuffix: _$(vpackName) - - # # createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) - # ob_createvpack_enabled: true - # ob_createvpack_packagename: $(vpackName) - # ob_createvpack_owneralias: kmahone - # ob_createvpack_description: $(vpackName) - # ob_createvpack_provData: true - # ob_createvpack_versionAs: string - # vpackversion: $[ dependencies.vpack.outputs['createvpack.vpackversion'] ] - # ob_createvpack_version: $(vpackversion)-kmahonetest4 - # ob_createvpack_verbose: true - # ob_createvpack_topLevelRetries: 0 - # ob_createvpack_failOnStdErr: true - # ob_createvpack_taskLogVerbosity: Detailed - - # steps: - - # - powershell: | - # ls env: - # displayName: 'display env vars' - # continueOnError: true - - # - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self - - # - task: DownloadPipelineArtifact@2 - # inputs: - # artifactName: drop_pack_vpack - # targetPath: $(publishDir) - - # - powershell: | - # Get-ChildItem -Recurse $(publishDir) - # displayName: 'list contents of publishDir' - # continueOnError: true + publishDir: $(Build.SourcesDirectory)\publish + vpackDir: $(publishDir)\$(sourceSubDir) + ob_outputDirectory: $(vpackDir) + ob_artifactSuffix: _$(vpackName) + + # createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) + ob_createvpack_enabled: true + ob_createvpack_packagename: $(vpackName) + ob_createvpack_owneralias: kmahone + ob_createvpack_description: $(vpackName) + ob_createvpack_provData: true + ob_createvpack_versionAs: string + vpackversion: $[ dependencies.vpack.outputs['createvpack.vpackversion'] ] + ob_createvpack_version: $(vpackversion) + ob_createvpack_verbose: true + ob_createvpack_topLevelRetries: 0 + ob_createvpack_failOnStdErr: true + ob_createvpack_taskLogVerbosity: Detailed + + steps: + + - powershell: | + ls env: + displayName: 'display env vars' + continueOnError: true + + - template: build\AzurePipelinesTemplates\MUX-InstallDotNetSDK-Steps.yml@self + + - task: DownloadPipelineArtifact@2 + inputs: + artifactName: drop_pack_vpack + targetPath: $(publishDir) + + - powershell: | + Get-ChildItem -Recurse $(publishDir) + displayName: 'list contents of publishDir' + continueOnError: true \ No newline at end of file From 18523c2ce08038ed3ba7db5fd08c25b7e1c63167 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Mon, 1 May 2023 11:41:04 -0700 Subject: [PATCH 21/40] stop using vnext image --- build/WinUI-OB-Official.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/WinUI-OB-Official.yml b/build/WinUI-OB-Official.yml index 8391b35f0b..e8f0e8ad3f 100644 --- a/build/WinUI-OB-Official.yml +++ b/build/WinUI-OB-Official.yml @@ -23,7 +23,7 @@ variables: NUGET_XMLDOC_MODE: none # Docker image which is used to build the project https://aka.ms/obpipelines/containers - WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:vnext ' + WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2019/vse2022:latest' Codeql.Enabled: true # CodeQL once every 3 days on the default branch for all languages its applicable to in that pipeline. From 4a62e1323945a516a8789852cf2804fe70f20499 Mon Sep 17 00:00:00 2001 From: Karen <7976322+karkarl@users.noreply.github.com> Date: Mon, 24 Apr 2023 20:51:37 -0700 Subject: [PATCH 22/40] TabView TabGeometry Animation Loop & Under Tab Line Fix (#8430) * wrap tabGeometry in Canvas * clean up * add comment (cherry picked from commit 5f527616b9a2844e01c4377d76055add9c017dd4) --- dev/TabView/TabView.cpp | 2 +- dev/TabView/TabView.xaml | 21 ++++++++++++--------- dev/TabView/TabViewItem.cpp | 9 +++------ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dev/TabView/TabView.cpp b/dev/TabView/TabView.cpp index d11ea2cdec..c5a148cfd5 100755 --- a/dev/TabView/TabView.cpp +++ b/dev/TabView/TabView.cpp @@ -1174,7 +1174,7 @@ void TabView::UpdateTabWidths(bool shouldUpdateWidths, bool fillAllAvailableSpac } else { - // Case: TabWidthMode "Compact" or "FitToContent" + // Case: TabWidthMode "Compact" or "SizeToContent" tabColumn.MaxWidth(availableWidth); tabColumn.Width(winrt::GridLengthHelper::FromValueAndType(1.0, winrt::GridUnitType::Auto)); if (auto&& listview = m_listView.get()) diff --git a/dev/TabView/TabView.xaml b/dev/TabView/TabView.xaml index c52a562d74..e23f7f6dd4 100755 --- a/dev/TabView/TabView.xaml +++ b/dev/TabView/TabView.xaml @@ -734,7 +734,7 @@ - + - + + + + (TabViewTemplateSettings()); - auto const scaleFactor = SharedHelpers::Is19H1OrHigher() ? - static_cast(XamlRoot().RasterizationScale()) : - static_cast(winrt::DisplayInformation::GetForCurrentView().RawPixelsPerViewPixel()); auto const height = ActualHeight(); auto const popupRadius = unbox_value(ResourceAccessor::ResourceLookup(*this, box_value(c_overlayCornerRadiusKey))); @@ -141,11 +138,11 @@ void TabViewItem::UpdateTabGeometry() WCHAR strOut[1024]; StringCchPrintf(strOut, ARRAYSIZE(strOut), data, - height - 1.0, + height, leftCorner, leftCorner, leftCorner, leftCorner, leftCorner, - ActualWidth() - (leftCorner + rightCorner + 1.0f / scaleFactor), + ActualWidth() - (leftCorner + rightCorner), rightCorner, rightCorner, rightCorner, rightCorner, - height - (5.0 + rightCorner)); + height - (4.0f + rightCorner)); const auto geometry = winrt::XamlReader::Load(strOut).try_as(); From e75d9a4e4e4a260ab8a1d9eb91b4da7ccc5abbde Mon Sep 17 00:00:00 2001 From: Karen <7976322+karkarl@users.noreply.github.com> Date: Tue, 25 Apr 2023 12:24:48 -0700 Subject: [PATCH 23/40] TabView.ItemChanged Event Fix (#8420) * re-enable OnItemsChanged OnDrag * update testPage * add test * undo accidental change * fix test * add test * remove outdated check * fix test * fix test (cherry picked from commit c8d3b4ad5655d7eda9045e8a5d273cfb855a2ee1) --- dev/TabView/InteractionTests/TabViewTests.cs | 49 ++++++++++++++------ dev/TabView/TabView.cpp | 9 ++-- dev/TabView/TestUI/TabViewPage.xaml | 5 ++ dev/TabView/TestUI/TabViewPage.xaml.cs | 8 ++++ 4 files changed, 51 insertions(+), 20 deletions(-) diff --git a/dev/TabView/InteractionTests/TabViewTests.cs b/dev/TabView/InteractionTests/TabViewTests.cs index 89681dad08..68a7eb5ae5 100755 --- a/dev/TabView/InteractionTests/TabViewTests.cs +++ b/dev/TabView/InteractionTests/TabViewTests.cs @@ -327,13 +327,6 @@ public void HandleItemCloseRequestedTest() [TestMethod] public void DragBetweenTabViewsTest() { - if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone5)) - { - // TODO 19727004: Re-enable this on versions below RS5 after fixing the bug where mouse click-and-drag doesn't work. - Log.Warning("This test relies on touch input, the injection of which is only supported in RS5 and up. Test is disabled."); - return; - } - using (var setup = new TestSetupHelper("TabView Tests")) { UIObject firstTab = FindElement.ByName("FirstTab"); @@ -361,13 +354,6 @@ public void DragBetweenTabViewsTest() [TestMethod] public void ReorderItemsTest() { - if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone5)) - { - // TODO 19727004: Re-enable this on versions below RS5 after fixing the bug where mouse click-and-drag doesn't work. - Log.Warning("This test relies on touch input, the injection of which is only supported in RS5 and up. Test is disabled."); - return; - } - using (var setup = new TestSetupHelper("TabView Tests")) { Button tabItemsSourcePageButton = FindElement.ByName diff --git a/dev/CommandBarFlyout/CommandBarFlyoutOS_themeresources_v1.xaml b/dev/CommandBarFlyout/CommandBarFlyoutOS_themeresources_v1.xaml index d1b84d4010..da4e097adc 100644 --- a/dev/CommandBarFlyout/CommandBarFlyoutOS_themeresources_v1.xaml +++ b/dev/CommandBarFlyout/CommandBarFlyoutOS_themeresources_v1.xaml @@ -449,7 +449,7 @@ VerticalAlignment="Center" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="16" - Glyph="" /> + Glyph="" /> diff --git a/dev/CommandBarFlyout/CommandBarFlyout_themeresources.xaml b/dev/CommandBarFlyout/CommandBarFlyout_themeresources.xaml index 11c8943386..b4182be514 100644 --- a/dev/CommandBarFlyout/CommandBarFlyout_themeresources.xaml +++ b/dev/CommandBarFlyout/CommandBarFlyout_themeresources.xaml @@ -547,7 +547,7 @@ + Glyph="" /> diff --git a/dev/CommandBarFlyout/CommandBarFlyout_themeresources_v1.xaml b/dev/CommandBarFlyout/CommandBarFlyout_themeresources_v1.xaml index 37cf4c0533..25203f99ee 100644 --- a/dev/CommandBarFlyout/CommandBarFlyout_themeresources_v1.xaml +++ b/dev/CommandBarFlyout/CommandBarFlyout_themeresources_v1.xaml @@ -453,7 +453,7 @@ + Glyph="" /> diff --git a/dev/CommonStyles/AppBarButton_themeresources_v1.xaml b/dev/CommonStyles/AppBarButton_themeresources_v1.xaml index adf1025b42..ba86e4acc5 100644 --- a/dev/CommonStyles/AppBarButton_themeresources_v1.xaml +++ b/dev/CommonStyles/AppBarButton_themeresources_v1.xaml @@ -417,7 +417,7 @@ AutomationProperties.AccessibilityView="Raw" /> diff --git a/dev/Materials/Reveal/RevealBrush_rs4_themeresources.xaml b/dev/Materials/Reveal/RevealBrush_rs4_themeresources.xaml index 468bdcabb1..65616e0ce2 100644 --- a/dev/Materials/Reveal/RevealBrush_rs4_themeresources.xaml +++ b/dev/Materials/Reveal/RevealBrush_rs4_themeresources.xaml @@ -1314,7 +1314,7 @@ VerticalAlignment="Center" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="20" - Glyph="" + Glyph="" Height="{ThemeResource AppBarExpandButtonCircleDiameter}" /> diff --git a/dev/NavigationView/NavigationView_rs1_themeresources.xaml b/dev/NavigationView/NavigationView_rs1_themeresources.xaml index 748cb8f593..3ad9591418 100755 --- a/dev/NavigationView/NavigationView_rs1_themeresources.xaml +++ b/dev/NavigationView/NavigationView_rs1_themeresources.xaml @@ -411,7 +411,7 @@ - + @@ -472,7 +472,7 @@ AutomationProperties.AccessibilityView="Raw" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="16" - Glyph="" + Glyph="" Foreground="{TemplateBinding Foreground}" IsHitTestVisible="False" /> @@ -534,7 +534,7 @@ AutomationProperties.AccessibilityView="Raw" FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="20" - Glyph="" + Glyph="" Foreground="{TemplateBinding Foreground}" IsHitTestVisible="False" /> diff --git a/dev/NavigationView/NavigationView_rs1_themeresources_v1.xaml b/dev/NavigationView/NavigationView_rs1_themeresources_v1.xaml index efb6b197c5..b5076bad97 100644 --- a/dev/NavigationView/NavigationView_rs1_themeresources_v1.xaml +++ b/dev/NavigationView/NavigationView_rs1_themeresources_v1.xaml @@ -403,7 +403,7 @@