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 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'
        - from: 'x64/Release'
          to: 'Build_Output'
          include:
            - 'action_runner.exe'
            - 'modules\ColorPicker\ColorPicker.dll'
            - 'modules\ColorPicker\ColorPickerUI.dll'
            - 'modules\ColorPicker\ColorPickerUI.exe'
            - 'modules\ColorPicker\ManagedCommon.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\FancyZones\fancyzones.dll'
            - 'modules\FancyZones\FancyZonesEditor.exe'
            - 'modules\FancyZones\FancyZonesEditor.dll'
            - 'modules\FancyZones\ManagedCommon.dll'
            - 'modules\FancyZones\Telemetry.dll'
            - 'modules\FancyZones\Microsoft.PowerToys.Common.UI.dll'
            - 'modules\FileExplorerPreview\MarkdownPreviewHandler.dll'
            - 'modules\FileExplorerPreview\MarkdownPreviewHandler.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\launcher\Microsoft.PowerToys.Settings.UI.Lib.dll'
            - 'modules\launcher\ManagedCommon.dll'
            - 'modules\launcher\Microsoft.PowerToys.Common.UI.dll'
            - 'modules\launcher\Microsoft.Launcher.dll'
            - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.dll'
            - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Telemetry.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Microsoft.Plugin.Folder.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Telemetry.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Microsoft.Plugin.Indexer.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Telemetry.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Program\Microsoft.Plugin.Program.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Program\Telemetry.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.Plugin.Shell\Microsoft.Plugin.Shell.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Telemetry.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\Microsoft.Plugin.Uri.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.Uri\Telemetry.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Microsoft.Plugin.WindowWalker.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Infrastructure.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Plugin.dll'
            - 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Telemetry.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\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\Microsoft.Launcher.dll'
            - 'modules\PowerRename\PowerRenameExt.dll'
            - 'modules\ShortcutGuide\ShortcutGuide.dll'
            - 'modules\VideoConference\VideoConferenceModule.dll'
            - 'modules\VideoConference\VideoConferenceProxyFilter_x64.dll'
            - 'Notifications.dll'
            - 'os-detection.dll'
            - 'PowerToys.exe'
            - 'PowerToysInterop.dll'
            - 'PowerToysSettings.exe'
            - '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 a 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 a 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 a 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 a 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'
