parameters: additionalBuildArguments: '' steps: - checkout: self fetchDepth: 1 submodules: true clean: true - task: UseDotNet@2 displayName: 'Use .NET 6 SDK' inputs: packageType: sdk version: '6.x' - task: NuGetToolInstaller@1 displayName: Ensure NuGet Installer - task: VisualStudioTestPlatformInstaller@1 displayName: Ensure VSTest Platform - task: NuGetCommand@2 displayName: Restore NuGet packages for PowerToys.sln inputs: command: restore feedsToUse: config configPath: NuGet.config restoreSolution: PowerToys.sln restoreDirectory: '$(Build.SourcesDirectory)\packages' - task: VSBuild@1 displayName: 'Build PowerToys.sln' inputs: solution: '**\PowerToys.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: NuGetCommand@2 displayName: Restore NuGet packages for BugReportTool.sln inputs: command: restore feedsToUse: config configPath: NuGet.config restoreSolution: tools\BugReportTool\BugReportTool.sln restoreDirectory: '$(Build.SourcesDirectory)\tools\BugReportTool\packages' - task: VSBuild@1 displayName: 'Build BugReportTool.sln' inputs: solution: '**\BugReportTool.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: NuGetCommand@2 displayName: Restore NuGet packages for WebcamReportTool.sln inputs: command: restore feedsToUse: config configPath: NuGet.config restoreSolution: tools\WebcamReportTool\WebcamReportTool.sln restoreDirectory: '$(Build.SourcesDirectory)\tools\WebcamReportTool\packages' - task: VSBuild@1 displayName: 'Build WebcamReportTool.sln' inputs: solution: '**\WebcamReportTool.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: NuGetCommand@2 displayName: Restore NuGet packages for StylesReportTool.sln inputs: command: restore feedsToUse: config configPath: NuGet.config restoreSolution: tools\StylesReportTool\StylesReportTool.sln restoreDirectory: '$(Build.SourcesDirectory)\tools\StylesReportTool\packages' - task: VSBuild@1 displayName: 'Build StylesReportTool.sln' inputs: solution: '**\StylesReportTool.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: PowerShell@2 displayName: Download and install WiX 3.14 development build inputs: targetType: filePath filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1' - task: NuGetCommand@2 displayName: Restore NuGet packages for PowerToysSetup.sln inputs: command: restore feedsToUse: config configPath: NuGet.config restoreSolution: installer\PowerToysSetup.sln restoreDirectory: '$(Build.SourcesDirectory)\installer\packages' - task: VSBuild@1 displayName: 'Build PowerToys MSI' inputs: solution: '**\installer\PowerToysSetup.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: VSBuild@1 displayName: 'Build PowerToys Bootstrapper' inputs: solution: '**\installer\PowerToysSetup.sln' vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArgs: /t:PowerToysBootstrapper ${{ parameters.additionalBuildArguments }} clean: false maximumCpuCount: true # directly not doing WinAppDriver testing - task: VSTest@2 displayName: 'MS Tests' condition: ne(variables['BuildPlatform'], 'arm64') # No arm64 agents to run the tests. inputs: platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' testSelector: 'testAssemblies' testAssemblyVer2: | **\UnitTests-GcodeThumbnailProvider.dll **\UnitTests-StlThumbnailProvider.dll **\UnitTests-PdfThumbnailProvider.dll **\Settings.UI.UnitTests.dll **\UnitTests-GcodePreviewHandler.dll **\UnitTests-PdfPreviewHandler.dll **\UnitTests-PreviewHandlerCommon.dll **\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.dll **\UnitTest-ColorPickerUI.dll **\Microsoft.Interop.Tests.dll **\ImageResizer.Test.dll **\Community.PowerToys.Run.Plugin.UnitConverter.UnitTest.dll **\Microsoft.Plugin.Folder.UnitTests.dll **\Microsoft.Plugin.Program.UnitTests.dll **\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest.dll **\Microsoft.Plugin.Uri.UnitTests.dll **\Wox.Test.dll **\Microsoft.PowerToys.Run.Plugin.System.UnitTests.dll **\Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests.dll **\Microsoft.PowerToys.Run.Plugin.TimeZone.UnitTests.dll **\Microsoft.Plugin.WindowsTerminal.UnitTests.dll **\Microsoft.Plugin.WindowWalker.UnitTests.dll !**\obj\** !**\ref\** # TODO: Enable these tests after figuring out what caused the tests that depend on WebView2 to start timing out in CI. # **\PreviewPaneUnitTests.dll # It's UnitTests-MarkdownPreviewHandler # **\UnitTests-SvgThumbnailProvider.dll # **\UnitTests-SvgPreviewHandler.dll # Native dlls - task: VSTest@2 condition: ne(variables['BuildPlatform'],'arm64') # No arm64 agents to run the tests. displayName: 'Native Tests' inputs: platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' testSelector: 'testAssemblies' testAssemblyVer2: | **\KeyboardManagerEngineTest.dll **\KeyboardManagerEditorTest.dll **\UnitTests-CommonLib.dll **\PowerRenameUnitTests.dll **\powerpreviewTest.dll **\UnitTests-FancyZones.dll !**\obj\**