mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-26 02:28:17 +08:00
db191b8b75
* Imported offline solution * Make solution compile * Add Windows sample, doesn't work? * Added new project to implement the dll * Remove unneeded header * Implemented IUnknown part of ExplorerCommand * Implemented IExplorerCommand methods * Implemented ClassFactory * Implemented DLL register/unregister * Implemented other DLL exports, not working? * Implemented IShellExtInit inferface * Implemented IContextMenu, it works! * Implement command data fetching * Make sample project compile on VS 2022 * Add plan * Implement Lib as separate project * Implemented IPC, not tested * Console UI project skeleton * Implemented basic console UI * Implemented piping, there are bugs * Prototype works * Remove old project * Added GUI project skeleton * Mitigate issue with WinUI3 * Added a control for displaying results * Add button * Implement core functions in lib project * Call new library function from console main * Implement showing results * Improve UI * Implemented subdirectory search * Remove useless code * Set window size * UI adjustments * Implement killing process * Rename variable * Add lib project to main solution * Add Ext and GUI projects to solution * Tweak packages for GUI project * Add a settings page * Add a few resource strings * Add one more resources string * VS keeps trying to correct this * Add references to File Locksmith in /,github * Implement some parts of FileLocksmithModule * Change output directory * Change target name and add to runner * Add logger * Started implementing settings backend * Fix log folder * Settings work * Add some basic tracing * Attempt at adding resources * Remove junk files * Added missing defines * Replaced some constants with resources Something's not working * Move resources to the Ext project * Remove experiment * Add binaries for signing * Improve tracing * Remove old Settings calls * Show something when there are no results * Change window title * Move computation to another thread, improve UX * Increase font size for default text * Remove entries for killed processes * Show user name * Remove nonrecursive implementation * Implement back end for getting file names * Show list of files, UI tweaks * Remove useless includes * Implement back end for getting full process path * Dark title bar on dark themes * Using Expander, other UI adjustments * Show "No results" after killing all processes * Show progress ring * Update configuration mapping * Revert "Update configuration mapping" This reverts commit d8e13206f3c7de3c6dbf880299bfff3bf9f27a37. * Fixed solution configuration, ARM64 should build * Backend for refreshing * Variable window size * Add refresh button * New WinUI3 C# project for FL * Started porting functionality * Add Interop project * Move IPC to Ext project * Ported native functions to Interop * Ported finding processes * Ported most of Main Window functionality * Display paths of files * Implement killing processes * Use resource string for "End Task" * Remove entries for terminated processes * Show User name * Set default window size * Make the new UI the default * Reading paths from stdin, completed port to C# * Fix small bug * Moving to MVVM * Adding Labs * Merge branch 'ivan/file-locksmith' of https://github.com/microsoft/PowerToys into ivan/file-locksmith Removing one parent commit for cleaner history Co-Authored-By: Niels Laute <niels.laute@live.nl> * Reintroducing features * Moving UI strings to resources file * Restored functionality * Add missing dlls * Add FIle Locksmith to publish.cmd * Rebase fixes * Try updating nuget.config * Fix copy-paste blunder * Add File Locksmith UI for publishing * Add .pubxml file in FileLocksmith * Change build output folder * Fix installer build issues Remove old projects from solution so MSBuild doesn't build them. Downgrade target framework to what most other projects are using. Fix publishing profile and project runtimes. Remove unused CsWinRT references. * [CI] Add clear to nuget packages * Fix module reference counting * Fix nuget for release CI * Fix version and signing * Fix path for resources * Fix incorrect results when running 2 instances * Fix default nuget source * Windows 10 icon and fallback for UI * Code clean-up and spaces instead of tabs * Add gif showcasing FL * Add screenshot of File Locksmith for Settings * Add new files to the installer * Add OOBE page * Showing selected paths in the header * Tweak path list * Added new, wider gif * Add GPO * Add some logs * [CI]Get CommunityToolkit.Labs from BigPark feed * [CI]Use azure package feed for Nuget in release * [CI]Another try for the labs source * Revert changes to feed * Use RestoreAdditionalProjectSources * Add tooltip to file list * Change tooltip to not trim the lines * Add Tips and tricks section mentioning elevated * Add some more logs messages. * Grammar fix * Add to bug report tool * Fix UI virtualization not working * Disable virtualization to avoid crashes * Get better virtualization * Add dialog instead of tooltip to show list of items * No results refresh icon is now a button too * Use managed methods for handling processes * Remove registry code from Ext. * Support drives too Co-authored-by: Niels Laute <niels.laute@live.nl> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
555 lines
20 KiB
YAML
555 lines
20 KiB
YAML
# This build should never run as CI or against a pull request.
|
|
trigger: none
|
|
pr: none
|
|
|
|
pool:
|
|
name: WinDevPool-L
|
|
demands: ImageOverride -equals WinDevVS17-latest
|
|
|
|
parameters:
|
|
- name: buildConfigurations
|
|
type: object
|
|
default:
|
|
- Release
|
|
- name: buildPlatforms
|
|
type: object
|
|
default:
|
|
- x64
|
|
- arm64
|
|
- name: versionNumber
|
|
type: string
|
|
default: '0.0.1'
|
|
|
|
variables:
|
|
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations
|
|
|
|
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
|
|
resources:
|
|
repositories:
|
|
- repository: self
|
|
type: git
|
|
ref: main
|
|
jobs:
|
|
- job: Build
|
|
strategy:
|
|
matrix:
|
|
${{ each config in parameters.buildConfigurations }}:
|
|
${{ each platform in parameters.buildPlatforms }}:
|
|
${{ config }}_${{ platform }}:
|
|
BuildConfiguration: ${{ config }}
|
|
BuildPlatform: ${{ platform }}
|
|
displayName: Build
|
|
timeoutInMinutes: 120 # Some of the loc stuff adds quite a bit of time.
|
|
cancelTimeoutInMinutes: 1
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
submodules: true
|
|
persistCredentials: True
|
|
|
|
# Sets versions for all PowerToy created DLLs
|
|
- task: PowerShell@1
|
|
displayName: Set Versions.Prop
|
|
inputs:
|
|
scriptName: .pipelines/versionSetting.ps1
|
|
arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
|
|
|
|
# Guardian tool needs 'Microsoft.NETCore.App', version '2.1.0' (x64)
|
|
- task: UseDotNet@2
|
|
displayName: 'Use .NET Core 2.1 SDK'
|
|
inputs:
|
|
packageType: sdk
|
|
version: '2.1.x'
|
|
|
|
- task: UseDotNet@2
|
|
displayName: 'Use .NET 6 SDK'
|
|
inputs:
|
|
packageType: sdk
|
|
version: '6.x'
|
|
|
|
- task: NuGetAuthenticate@0
|
|
inputs:
|
|
nuGetServiceConnections: PowerToysCDPxFeed
|
|
|
|
- task: NuGetToolInstaller@1
|
|
displayName: Use NuGet Installer latest
|
|
|
|
# this will restore the following nugets:
|
|
# - main solution
|
|
# - Bug report tool
|
|
# - Webcam report tool
|
|
# - Installer
|
|
# - Bootstrapper Installer
|
|
- task: NuGetCommand@2
|
|
displayName: NuGet restore solutions dependencies
|
|
inputs:
|
|
command: restore
|
|
restoreSolution: '**/*.sln'
|
|
selectOrConfig: config
|
|
nugetConfigPath: .pipelines/release-nuget.config
|
|
|
|
- task: PowerShell@2
|
|
displayName: Download and install WiX 3.14 development build
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
|
|
|
|
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
|
|
displayName: 'Download Localization Files -- PowerToys 37400'
|
|
inputs:
|
|
teamId: 37400
|
|
authId: '$(TouchdownApplicationID)'
|
|
authKey: '$(TouchdownApplicationKey)'
|
|
resourceFilePath: |
|
|
**\Resources.resx
|
|
**\Resource.resx
|
|
**\Resources.resw
|
|
appendRelativeDir: true
|
|
localizationTarget: false
|
|
# pseudoSetting: Included
|
|
|
|
- task: PowerShell@2
|
|
displayName: Move Loc files into correct locations
|
|
inputs:
|
|
targetType: inline
|
|
script: >-
|
|
$VerbosePreference = "Continue"
|
|
|
|
./tools/build/move-and-rename-resx.ps1
|
|
|
|
./tools/build/move-uwp-resw.ps1
|
|
pwsh: true
|
|
|
|
- task: CmdLine@2
|
|
displayName: Moving telem files
|
|
inputs:
|
|
script: |
|
|
call nuget.exe restore -configFile .pipelines/release-nuget.config -PackagesDirectory . .pipelines/packages.config || exit /b 1
|
|
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TraceLoggingDefines.h" "src\common\Telemetry\TraceLoggingDefines.h" || exit /b 1
|
|
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TelemetryBase.cs" "src\common\Telemetry\TelemetryBase.cs" || exit /b 1
|
|
|
|
## ALL BUT INSTALLER BUILDING
|
|
- task: VSBuild@1
|
|
displayName: Build PowerToys main project
|
|
inputs:
|
|
solution: '**\PowerToys.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Build BugReportTool
|
|
inputs:
|
|
solution: '**/tools/BugReportTool/BugReportTool.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Build WebcamReportTool
|
|
inputs:
|
|
solution: '**/tools/WebcamReportTool/WebcamReportTool.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Build StylesReportTool
|
|
inputs:
|
|
solution: '**/tools/StylesReportTool/StylesReportTool.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Build PowerToysSetupCustomActions
|
|
inputs:
|
|
solution: '**/installer/PowerToysSetup.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /target:PowerToysSetupCustomActions /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Settings for Packaging
|
|
inputs:
|
|
solution: 'src/settings-ui/Settings.UI/PowerToys.Settings.csproj'
|
|
vsVersion: 17.0
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Launcher for Packaging
|
|
inputs:
|
|
solution: 'src/modules/launcher/PowerLauncher/PowerLauncher.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Monaco Preview Handler for Packaging
|
|
inputs:
|
|
solution: 'src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandler.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Markdown Preview Handler for Packaging
|
|
inputs:
|
|
solution: 'src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandler.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Svg Preview Handler for Packaging
|
|
inputs:
|
|
solution: 'src/modules/previewpane/SvgPreviewHandler/SvgPreviewHandler.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Svg Thumbnail Provider for Packaging
|
|
inputs:
|
|
solution: 'src/modules/previewpane/SvgThumbnailProvider/SvgThumbnailProvider.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish Measure Tool UI for Packaging
|
|
inputs:
|
|
solution: 'src/modules/MeasureTool/MeasureToolUI/MeasureToolUI.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Publish File Locksmith UI for Packaging
|
|
inputs:
|
|
solution: 'src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithUI.csproj'
|
|
vsVersion: 17.0
|
|
# The arguments should be the same as the ones for Settings; make sure they are.
|
|
msbuildArgs: >-
|
|
/target:Publish
|
|
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
- task: VSBuild@1
|
|
displayName: Build PowerToysSetupCustomActions DLL # This dll needs to be build and signed before building the MSI.
|
|
inputs:
|
|
solution: '**/installer/PowerToysSetup.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysSetupCustomActions
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
maximumCpuCount: true
|
|
|
|
#### MAIN SIGNING AREA
|
|
# reference https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/ESRPSigning.json&version=GBarm64-netcore&_a=contents for winappdriver
|
|
# https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/CIPolicy.xml&version=GBarm64-netcore&_a=contents
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: Sign PowerToysSetupCustomActions DLL
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: 'installer/PowerToysSetupCustomActions/$(BuildPlatform)\$(BuildConfiguration)'
|
|
signType: batchSigning
|
|
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
|
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: Sign Core PT
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: '$(BuildPlatform)/$(BuildConfiguration)' # Video conf uses x86 and x64.
|
|
signType: batchSigning
|
|
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_core.json'
|
|
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: Sign x86 directshow VCM
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: 'x86/$(BuildConfiguration)' # Video conf uses x86 and x64.
|
|
signType: batchSigning
|
|
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_vcm.json'
|
|
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
|
#### END SIGNING
|
|
## END MAIN
|
|
|
|
## INSTALLER START
|
|
#### MSI BUILDING AND SIGNING
|
|
- task: VSBuild@1
|
|
displayName: Build MSI
|
|
inputs:
|
|
solution: '**/installer/PowerToysSetup.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /target:PowerToysInstaller /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: false # don't undo our hard work above by deleting the CustomActions dll
|
|
maximumCpuCount: true
|
|
|
|
- task: CmdLine@2
|
|
displayName: 'Extracting MSI to verify contents'
|
|
inputs:
|
|
script: |
|
|
"C:\Program Files (x86)\WiX Toolset v3.14\bin\dark.exe" -x $(build.sourcesdirectory)\extractedMsi installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).msi
|
|
dir $(build.sourcesdirectory)\extractedMsi
|
|
|
|
# Did we sign all files
|
|
- task: PowerShell@1
|
|
displayName: Verifying entire build is signed and version set
|
|
inputs:
|
|
scriptName: .pipelines/versionAndSignCheck.ps1
|
|
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
|
|
|
|
- task: PowerShell@1
|
|
displayName: Verifying MSI Custom Actions DLL is signed
|
|
inputs:
|
|
scriptName: .pipelines/versionAndSignCheck.ps1
|
|
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: Sign MSI
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)'
|
|
signType: batchSigning
|
|
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
|
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
|
#### END MSI
|
|
|
|
#### BOOTSTRAP BUILDING AND SIGNING
|
|
- task: VSBuild@1
|
|
displayName: Build Bootstrapper
|
|
inputs:
|
|
solution: '**/installer/PowerToysSetup.sln'
|
|
vsVersion: 17.0
|
|
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysBootstrapper
|
|
platform: $(BuildPlatform)
|
|
configuration: $(BuildConfiguration)
|
|
clean: false # don't undo our hard work above by deleting the MSI
|
|
maximumCpuCount: true
|
|
|
|
- task: CmdLine@2
|
|
displayName: 'Insignia: Extract Engine from Bundle'
|
|
inputs:
|
|
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\engine.exe'
|
|
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: 'ESRP CodeSigning (Engine)'
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: 'installer'
|
|
Pattern: engine.exe
|
|
signConfigType: inlineSignParams
|
|
inlineOperation: |
|
|
[
|
|
{
|
|
"KeyCode": "CP-230012",
|
|
"OperationCode": "SigntoolSign",
|
|
"Parameters": {
|
|
"OpusName": "Microsoft",
|
|
"OpusInfo": "http://www.microsoft.com",
|
|
"FileDigest": "/fd \"SHA256\"",
|
|
"PageHash": "/NPH",
|
|
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
|
},
|
|
"ToolName": "sign",
|
|
"ToolVersion": "1.0"
|
|
},
|
|
{
|
|
"KeyCode": "CP-230012",
|
|
"OperationCode": "SigntoolVerify",
|
|
"Parameters": {},
|
|
"ToolName": "sign",
|
|
"ToolVersion": "1.0"
|
|
}
|
|
]
|
|
|
|
- task: CmdLine@2
|
|
displayName: 'Insignia: Merge Engine into Bundle'
|
|
inputs:
|
|
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe'
|
|
|
|
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
|
displayName: Sign Bootstrapper
|
|
inputs:
|
|
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
|
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)'
|
|
signType: batchSigning
|
|
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
|
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
|
#### END BOOTSTRAP
|
|
## END INSTALLER
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: binlog'
|
|
condition: failed()
|
|
continueOnError: True
|
|
inputs:
|
|
PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog
|
|
ArtifactName: binlog-$(BuildPlatform)
|
|
|
|
- task: ComponentGovernanceComponentDetection@0
|
|
displayName: Component Detection
|
|
|
|
- task: CopyFiles@2
|
|
displayName: Copying files for symbols
|
|
inputs:
|
|
contents: >-
|
|
**/*.pdb
|
|
flattenFolders: True
|
|
targetFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Remove unneeded files from ArtifactStagingDirectory'
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
cd $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
|
Remove-Item vc143.pdb
|
|
Remove-Item *test*
|
|
|
|
- task: PublishSymbols@2
|
|
displayName: Publish symbols path
|
|
continueOnError: True
|
|
inputs:
|
|
SearchPattern: |
|
|
$(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/**/*.*
|
|
IndexSources: false
|
|
SymbolServerType: TeamServices
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: Symbols'
|
|
inputs:
|
|
PathtoPublish: $(System.ArtifactsDirectory)/Symbols-$(BuildPlatform)/
|
|
ArtifactName: Symbols-${{ parameters.versionNumber }}-$(BuildPlatform)
|
|
|
|
- task: DeleteFiles@1
|
|
displayName: 'Remove symbols from ArtifactStagingDirectory'
|
|
inputs:
|
|
Contents: '*'
|
|
SourceFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
|
RemoveSourceFolder: True
|
|
|
|
- task: CopyFiles@2
|
|
displayName: Copying setup file over
|
|
inputs:
|
|
contents: '**/PowerToysSetup-*.exe'
|
|
flattenFolders: True
|
|
targetFolder: $(Build.ArtifactStagingDirectory)
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Calculating SHA256 hash'
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
$p = "$(System.ArtifactsDirectory)\";
|
|
$staging = "$(Build.ArtifactStagingDirectory)\"
|
|
$hash = ((get-item $p\*.exe | Get-FileHash).Hash);
|
|
$plat = "hash_$(BuildPlatform).txt";
|
|
$combinedPath = $staging + $plat;
|
|
|
|
echo $plat
|
|
echo $hash
|
|
echo $p
|
|
echo $combinedPath
|
|
|
|
$hash | out-file -filepath $combinedPath
|
|
pwsh: true
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: PowerToySetup'
|
|
inputs:
|
|
PathtoPublish: $(System.ArtifactsDirectory)
|
|
ArtifactName: setup-$(BuildPlatform)
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: GPO Files'
|
|
inputs:
|
|
PathtoPublish: doc\gpo\assets
|
|
ArtifactName: GroupPolicyObjectsFiles
|
|
|
|
|
|
...
|