environment:
  host:
    os: 'windows'
    flavor: 'server'
    version: '2019'
  runtime:
    provider: 'appcontainer'
    image: 'cdpxwinrs5.azurecr.io/global/vse2019:16.4.3'
    source_mode: 'map'

version:
  name: 'PowerToys'
  major: 1
  minor: 0

signing_options:
  profile: 'external_distribution'

package_sources:
  nuget:
    feeds:
      'Nuget': 'https://api.nuget.org/v3/index.json'
      'PipelineBuildSupplement': 'https://msazure.pkgs.visualstudio.com/_packaging/PipelineBuildSupplement/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'


build:
  commands:
    - !!buildcommand
      name: 'Build Power Toys'
      command: '.pipelines\build.cmd'
      artifacts:
        - from: 'x64/Release'
          to: 'Build_Output'
          include:
            - 'PowerToys.exe'
            - 'PowerToysSettings.exe'
            - 'action_runner.exe'
            - 'modules\FancyZonesEditor.exe'
            - 'modules\fancyzones.dll'
            - 'modules\shortcut_guide.dll'
            - 'modules\PowerRenameExt.dll'
            - 'modules\WindowWalker.exe'
            - 'modules\WindowWalker.dll'
            - 'modules\ImageResizerExt.dll'
            - 'modules\ImageResizer.exe'
            - 'modules\powerpreview.dll'
            - 'modules\PreviewHandlerCommon.dll'
            - 'modules\MarkdownPreviewHandler.dll'
            - 'modules\SvgPreviewHandler.dll'
          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: 'Archive symbols to Symbol Server'
#      artifacts:
#        - to: 'x64 Symbols'
#          include:
#            - 'x64/Release/action_runner.pdb'
#            - 'x64/Release/Notifications.pdb'
#            - 'x64/Release/PowerRenameUWPUI.pdb'
#            - 'x64/Release/PowerToys.pdb'
#            - 'x64/Release/PowerToysSettings.pdb'
#            - 'x64/Release/modules/fancyzones.pdb'
#            - 'x64/Release/modules/FancyZonesEditor.pdb'
#            - 'x64/Release/modules/PowerRenameExt.pdb'
#            - 'x64/Release/modules/shortcut_guide.pdb'

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' 
        
