environment: host: os: 'windows' flavor: 'server' version: '2019' runtime: provider: 'appcontainer' # we will want to shift this to latest in the near future but this unblocks us image: 'cdpxwin1809.azurecr.io/global/vse2019@sha256:44a8af0de5efa68829dbdfc3ecef3864d9770f1fc426b897fc37888032c9f60c' source_mode: 'map' version: name: 'PowerToys' major: 1 minor: 0 signing_options: profile: 'external_distribution' package_sources: nuget: feeds: 'PowerToysCDPX_Feed': 'https://github-private.pkgs.visualstudio.com/microsoft/_packaging/PowerToysCDPX_Feed/nuget/v3/index.json' restore: commands: - !!defaultcommand name: 'Restore Power Toys Telemetry' command: '.pipelines\restore-telemetry.cmd' - !!defaultcommand name: 'Restore Power Toys' command: '.pipelines\restore.cmd' - !!defaultcommand name: 'Restore Installer' command: '.pipelines\restore-installer.cmd' - !!defaultcommand name: 'Restore Installer BootStrapper' command: '.pipelines\restore-bootstrapper.cmd' - !!defaultcommand name: 'Restore Localization packages' command: '.pipelines\restore-localization.cmd' - !!defaultcommand name: 'Restore Tools packages' command: '.pipelines\restore-tools.cmd' build: commands: # Localize the files before the Build PowerToys step to generate translated resx files from the lcl files - !!buildcommand name: 'Localize Power Toys' command: '.pipelines\build-localization.cmd' artifacts: - from: 'out\loc' to: 'loc' include: - '**/*' - !!buildcommand name: 'Build Power Toys' command: '.pipelines\build.cmd' artifacts: - to: 'Symbols' include: - 'x64/**/*.pdb' exclude: - 'x64/Release/obj/**/*.pdb' - from: 'x86/Release' to: 'Build_Output' include: - 'modules\VideoConference\VideoConferenceProxyFilter_x86.dll' signing_options: sign_inline: true # This does signing as soon as this command completes - from: 'x64/Release' to: 'Build_Output' include: - 'PowerToys.ActionRunner.exe' - 'PowerToys.Update.exe' - 'BackgroundActivatorDLL.dll' - 'Notifications.dll' - 'os-detection.dll' - 'PowerToys.exe' - 'PowerToysInterop.dll' - 'BugReportTool\BugReportTool.exe' - '**\*.resources.dll' - 'modules\ColorPicker\ColorPicker.dll' - 'modules\ColorPicker\ColorPickerUI.dll' - 'modules\ColorPicker\ColorPickerUI.exe' - 'modules\ColorPicker\ManagedCommon.dll' - 'modules\ColorPicker\ManagedTelemetry.dll' - 'modules\ColorPicker\Microsoft.PowerToys.Common.UI.dll' - 'modules\ColorPicker\Microsoft.PowerToys.Settings.UI.Lib.dll' - 'modules\ColorPicker\PowerToysInterop.dll' - 'modules\ColorPicker\Telemetry.dll' - '**\*.resources.dll' - 'modules\Awake\AwakeModuleInterface.dll' - 'modules\Awake\ManagedCommon.dll' - 'modules\Awake\ManagedTelemetry.dll' - 'modules\Awake\Microsoft.PowerToys.Settings.UI.Lib.dll' - 'modules\Awake\PowerToys.Awake.exe' - 'modules\Awake\PowerToys.Awake.dll' - 'modules\Awake\PowerToysInterop.dll' - 'modules\FancyZones\fancyzones.dll' - 'modules\FancyZones\FancyZonesEditor.exe' - 'modules\FancyZones\FancyZonesEditor.dll' - 'modules\FancyZones\FancyZonesModuleInterface.dll' - 'modules\FancyZones\ManagedCommon.dll' - 'modules\FancyZones\ManagedTelemetry.dll' - 'modules\FancyZones\PowerToys.FancyZones.exe' - 'modules\FancyZones\PowerToysInterop.dll' - 'modules\FancyZones\Telemetry.dll' - 'modules\FancyZones\Microsoft.PowerToys.Common.UI.dll' - 'modules\FileExplorerPreview\ManagedTelemetry.dll' - 'modules\FileExplorerPreview\MarkdownPreviewHandler.dll' - 'modules\FileExplorerPreview\MarkdownPreviewHandler.comhost.dll' - 'modules\FileExplorerPreview\PdfPreviewHandler.dll' - 'modules\FileExplorerPreview\PdfPreviewHandler.comhost.dll' - 'modules\FileExplorerPreview\PdfThumbnailProvider.dll' - 'modules\FileExplorerPreview\PdfThumbnailProvider.comhost.dll' - 'modules\FileExplorerPreview\powerpreview.dll' - 'modules\FileExplorerPreview\PreviewHandlerCommon.dll' - 'modules\FileExplorerPreview\SvgPreviewHandler.dll' - 'modules\FileExplorerPreview\SvgPreviewHandler.comhost.dll' - 'modules\FileExplorerPreview\SvgThumbnailProvider.dll' - 'modules\FileExplorerPreview\SvgThumbnailProvider.comhost.dll' - 'modules\FileExplorerPreview\Telemetry.dll' - 'modules\ImageResizer\ImageResizer.exe' - 'modules\ImageResizer\ImageResizer.dll' - 'modules\ImageResizer\ImageResizerExt.dll' - 'modules\ImageResizer\PowerToysInterop.dll' - 'modules\ImageResizer\ManagedCommon.dll' - 'modules\ImageResizer\ManagedTelemetry.dll' - 'modules\ImageResizer\Microsoft.PowerToys.Common.UI.dll' - 'modules\KeyboardManager\KeyboardManager.dll' - 'modules\KeyboardManager\KeyboardManagerEditor\PowerToys.KeyboardManagerEditor.exe' - 'modules\KeyboardManager\KeyboardManagerEngine\PowerToys.KeyboardManagerEngine.exe' - 'modules\launcher\Microsoft.PowerToys.Settings.UI.Lib.dll' - 'modules\launcher\ManagedCommon.dll' - 'modules\launcher\ManagedTelemetry.dll' - 'modules\launcher\Microsoft.PowerToys.Common.UI.dll' - 'modules\launcher\Microsoft.Launcher.dll' - 'modules\launcher\Plugins\Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.dll' - 'modules\launcher\Plugins\Calculator\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Microsoft.Plugin.Folder.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Microsoft.Plugin.Indexer.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Program\Microsoft.Plugin.Program.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Program\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry\Microsoft.PowerToys.Run.Plugin.Registry.dll' - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.WindowsSettings\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.WindowsSettings\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll' - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.WindowsSettings\WindowsSettings.json' - 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Microsoft.Plugin.Shell.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Shell\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\Microsoft.Plugin.Uri.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Microsoft.Plugin.WindowWalker.dll' - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\ManagedTelemetry.dll' - 'modules\launcher\Plugins\Community.UnitConverter\Community.PowerToys.Run.Plugin.UnitConverter.dll' - 'modules\launcher\Plugins\VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll' - 'modules\launcher\Plugins\Service\Microsoft.PowerToys.Run.Plugin.Service.dll' - 'modules\launcher\Plugins\System\Microsoft.PowerToys.Run.Plugin.System.dll' - 'modules\launcher\Plugins\WindowsTerminal\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll' - 'modules\launcher\Plugins\WindowsTerminal\ManagedTelemetry.dll' - 'modules\launcher\PowerLauncher.dll' - 'modules\launcher\PowerLauncher.exe' - 'modules\launcher\PowerLauncher.Telemetry.dll' - 'modules\launcher\PowerLauncher.UI.exe' - 'modules\launcher\PowerToysInterop.dll' - 'modules\launcher\Telemetry.dll' - 'modules\launcher\Wox.dll' - 'modules\launcher\Wox.Infrastructure.dll' - 'modules\launcher\Wox.Plugin.dll' - 'modules\MouseUtils\FindMyMouse.dll' - 'modules\MouseUtils\MouseHighlighter.dll' - 'modules\PowerRename\PowerRenameExt.dll' - 'modules\PowerRename\PowerRenameUILib.dll' - 'modules\PowerRename\PowerRename.exe' - 'modules\ShortcutGuide\ShortcutGuide\PowerToys.ShortcutGuide.exe' - 'modules\ShortcutGuide\ShortcutGuideModuleInterface\ShortcutGuideModuleInterface.dll' - 'modules\VideoConference\VideoConferenceModule.dll' - 'modules\VideoConference\VideoConferenceProxyFilter_x64.dll' - 'Settings\ManagedTelemetry.dll' - 'Settings\Microsoft.PowerToys.Settings.UI.exe' - 'Settings\Microsoft.PowerToys.Settings.UI.Lib.dll' - 'Settings\PowerToys.Settings.dll' - 'Settings\PowerToys.Settings.exe' - 'Settings\PowerToysInterop.dll' - 'Settings\Telemetry.dll' - 'Settings\ManagedCommon.dll' signing_options: sign_inline: true # This does signing as soon as this command completes - !!buildcommand name: 'Build Power Toys Tools' command: '.pipelines\build-tools.cmd' artifacts: - from: 'x64\Release' to: 'Build_Output' include: - 'BugReportTool\BugReportTool.exe' - 'WebcamReportTool\WebcamReportTool.exe' signing_options: sign_inline: true # This does signing as soon as this command completes - !!buildcommand name: 'Build Power Toys Installer Custom Action' # Need to do separately to sign dll before building installer command: '.pipelines\build-installer-PTCustomActions.cmd' artifacts: - from: 'installer\PowerToysSetupCustomActions\x64\Release' to: 'Build_Output' include: - 'PowerToysSetupCustomActions.dll' signing_options: sign_inline: true # This does signing as soon as this command completes - !!buildcommand name: 'Build Power Toys Installer' command: '.pipelines\build-installer.cmd' artifacts: - from: 'installer\PowerToysSetup\x64\Release' to: 'Build_Installer_Output' include: - 'PowerToysSetup-*.msi' signing_options: sign_inline: true # This does signing as soon as this command completes - !!buildcommand name: 'Build Power Toys Bootstrapper' command: '.pipelines\build-bootstrapper.cmd' artifacts: - to: 'Symbols' include: - 'installer\PowerToysBootstrapper\x64\Release\PowerToysSetup-*.pdb' - from: 'installer\PowerToysBootstrapper\x64\Release' to: 'Build_Installer_Output' include: - 'PowerToysSetup-*.exe' signing_options: sign_inline: true # This does signing as soon as this command completes #package: # commands: # - !!buildcommand # name: 'Build MSIX package' # command: 'installer\msix\build_msix_cdpx.cmd' # artifacts: # - from: 'installer\msix\bin' # to: 'Build_MSIX_Package_Output' # include: # - '*.msix' # - '*.msixbundle' # signing_options: # profile: '400' static_analysis_options: binskim_options: files_to_scan: - from: 'installer/packages' exclude: - 'WiX.*/**/*.dll' - 'Wix.*/**/*.exe' moderncop_options: files_to_scan: - from: 'src' exclude: - '**/just.config.js' - '**/webpack.config.js' - '**/webpack.serve.config.js' - '**/dist/bundle.js' policheck_options: files_to_scan: - exclude: - '**/*.lcl'