mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-11 17:59:28 +08:00
57c5575a8d
* [release] Move NuGet feed from CDPx to DART Since the release pipeline is run in the DART Azure DevOps project, we no longer need to authenticate against it. The build agent will be running with a token that allows access. * restore nuget.config * We should still authenticate against this org, not a specific feed * rename the feed * whoa whoa whoa okay * [ci]Conditionally add labs package except in Dart (#22294) * Propagate Jaime's change Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
553 lines
20 KiB
YAML
553 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
|
|
|
|
- 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
|
|
|
|
|
|
...
|