[Build] Switch the release pipeline to use the 1ES governed template (#29014)

This commit is contained in:
Dustin L. Howett
2023-10-05 18:25:16 -05:00
committed by GitHub
parent 45150067b3
commit 03ad83836d
4 changed files with 7851 additions and 394 deletions

View File

@@ -1,8 +1,11 @@
cloudai
bkmeneguello bkmeneguello
FWest FWest
gdnbaselines
github github
https https
obairka obairka
sdl
ssh ssh
ubuntu ubuntu
unuing unuing

View File

@@ -24,7 +24,7 @@ steps:
clean: true clean: true
maximumCpuCount: true maximumCpuCount: true
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign PowerToysSetupCustomActions DLL displayName: Sign PowerToysSetupCustomActions DLL
inputs: inputs:
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection" ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
@@ -74,7 +74,7 @@ steps:
scriptName: .pipelines/versionAndSignCheck.ps1 scriptName: .pipelines/versionAndSignCheck.ps1
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary' arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign MSI displayName: Sign MSI
inputs: inputs:
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection" ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
@@ -101,7 +101,7 @@ steps:
inputs: inputs:
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\engine.exe' script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\engine.exe'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: "ESRP CodeSigning (Engine)" displayName: "ESRP CodeSigning (Engine)"
inputs: inputs:
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection" ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
@@ -137,7 +137,7 @@ steps:
inputs: inputs:
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe' script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign Bootstrapper displayName: Sign Bootstrapper
inputs: inputs:
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection" ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"

View File

@@ -1,10 +1,13 @@
# This build should never run as CI or against a pull request. # This build should never run as CI or against a pull request.
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
trigger: none trigger: none
pr: none
pool: resources:
name: SHINE-INT-L repositories:
demands: ImageOverride -equals SHINE-VS17-Latest - repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
parameters: parameters:
- name: buildConfigurations - name: buildConfigurations
@@ -20,429 +23,423 @@ parameters:
type: string type: string
default: '0.0.1' default: '0.0.1'
variables: extends:
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
SkipCppCodeAnalysis: 1 # Skip the code analysis to speed up release CI. It runs on PR CI, anyway parameters:
IsExperimentationLive: 1 # The build and installer use this to turn on experimentation customBuildTags:
- 1ES.PT.ViaStartRight
pool:
name: SHINE-INT-S
image: SHINE-VS17-Latest
os: windows
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr) stages:
resources: - stage: build
repositories: displayName: Build (Complete)
- repository: self pool:
type: git name: SHINE-INT-L
ref: main image: SHINE-VS17-Latest
jobs: os: windows
- job: Build jobs:
strategy: - job: Build
matrix: strategy:
${{ each config in parameters.buildConfigurations }}: matrix:
${{ each platform in parameters.buildPlatforms }}: ${{ each config in parameters.buildConfigurations }}:
${{ config }}_${{ platform }}: ${{ each platform in parameters.buildPlatforms }}:
BuildConfiguration: ${{ config }} ${{ config }}_${{ platform }}:
BuildPlatform: ${{ platform }} BuildConfiguration: ${{ config }}
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=${{ platform }} # Required for nuget to work due to self contained BuildPlatform: ${{ platform }}
NODE_OPTIONS: --max_old_space_size=16384 templateContext:
displayName: Build outputs:
timeoutInMinutes: 120 # Some of the loc stuff adds quite a bit of time. - output: pipelineArtifact
cancelTimeoutInMinutes: 1 artifactName: setup-$(BuildPlatform)
steps: targetPath: $(Build.ArtifactStagingDirectory)
- checkout: self sdl:
clean: true baseline:
submodules: true baselineFile: $(Build.SourcesDirectory)\.pipelines\sdl.gdnbaselines
persistCredentials: True displayName: Build
timeoutInMinutes: 240 # Some of the 1ES Pipeline stuff and Loc take a very long time
cancelTimeoutInMinutes: 1
variables:
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=$(BuildPlatform) # Required for nuget to work due to self contained
NODE_OPTIONS: --max_old_space_size=16384
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations
SkipCppCodeAnalysis: 1 # Skip the code analysis to speed up release CI. It runs on PR CI, anyway
IsExperimentationLive: 1 # The build and installer use this to turn on experimentation
steps:
- checkout: self
clean: true
submodules: true
persistCredentials: True
# Sets versions for all PowerToy created DLLs # Sets versions for all PowerToy created DLLs
- task: PowerShell@1 - task: PowerShell@1
displayName: Set Versions.Prop displayName: Set Versions.Prop
inputs: inputs:
scriptName: .pipelines/versionSetting.ps1 scriptName: .pipelines/versionSetting.ps1
arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment '' arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
# Guardian tool needs 'Microsoft.NETCore.App', version '2.1.0' (x64) # ESRP needs 'Microsoft.NETCore.App', version '6.0.0' (x64)
- task: UseDotNet@2 - task: UseDotNet@2
displayName: 'Use .NET Core 2.1 SDK' displayName: 'Use .NET 6 SDK'
inputs: inputs:
packageType: sdk packageType: sdk
version: '2.1.x' version: '6.x'
- task: UseDotNet@2 - task: UseDotNet@2
displayName: 'Use .NET 7 SDK' displayName: 'Use .NET 7 SDK'
inputs: inputs:
packageType: sdk packageType: sdk
version: '7.x' version: '7.x'
- task: NuGetAuthenticate@1 - task: NuGetAuthenticate@1
- task: NuGetToolInstaller@1 - task: NuGetToolInstaller@1
displayName: Use NuGet Installer latest displayName: Use NuGet Installer latest
# this will restore the following nugets: # this will restore the following nugets:
# - main solution # - main solution
# - Bug report tool # - Bug report tool
# - Webcam report tool # - Webcam report tool
# - Installer # - Installer
# - Bootstrapper Installer # - Bootstrapper Installer
- task: PowerShell@2 - task: PowerShell@2
displayName: Download and install WiX 3.14 development build displayName: Download and install WiX 3.14 development build
inputs: inputs:
targetType: filePath targetType: filePath
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1' filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1 - task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
displayName: 'Download Localization Files -- PowerToys 37400' displayName: 'Download Localization Files -- PowerToys 37400'
inputs: inputs:
teamId: 37400 teamId: 37400
authId: '$(TouchdownApplicationID)' authId: '$(TouchdownApplicationID)'
authKey: '$(TouchdownApplicationKey)' authKey: '$(TouchdownApplicationKey)'
resourceFilePath: | resourceFilePath: |
**\Resources.resx **\Resources.resx
**\Resource.resx **\Resource.resx
**\Resources.resw **\Resources.resw
appendRelativeDir: true appendRelativeDir: true
localizationTarget: false localizationTarget: false
# pseudoSetting: Included # pseudoSetting: Included
- task: PowerShell@2 - task: PowerShell@2
displayName: Move Loc files into correct locations displayName: Move Loc files into correct locations
inputs: inputs:
targetType: inline targetType: inline
script: >- script: >-
$VerbosePreference = "Continue" $VerbosePreference = "Continue"
./tools/build/move-and-rename-resx.ps1 ./tools/build/move-and-rename-resx.ps1
./tools/build/move-uwp-resw.ps1 ./tools/build/move-uwp-resw.ps1
pwsh: true pwsh: true
- task: CmdLine@2 - task: CmdLine@2
displayName: Moving telem files displayName: Moving telem files
inputs: inputs:
script: | script: |
call nuget.exe restore -configFile .pipelines/release-nuget.config -PackagesDirectory . .pipelines/packages.config || exit /b 1 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\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 move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TelemetryBase.cs" "src\common\Telemetry\TelemetryBase.cs" || exit /b 1
## ALL BUT INSTALLER BUILDING ## ALL BUT INSTALLER BUILDING
- task: VSBuild@1 - task: VSBuild@1
displayName: Build PowerToys main project displayName: Build PowerToys main project
inputs: inputs:
solution: '**\PowerToys.sln' solution: '**\PowerToys.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Build BugReportTool displayName: Build BugReportTool
inputs: inputs:
solution: '**/tools/BugReportTool/BugReportTool.sln' solution: '**/tools/BugReportTool/BugReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Build WebcamReportTool displayName: Build WebcamReportTool
inputs: inputs:
solution: '**/tools/WebcamReportTool/WebcamReportTool.sln' solution: '**/tools/WebcamReportTool/WebcamReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Build StylesReportTool displayName: Build StylesReportTool
inputs: inputs:
solution: '**/tools/StylesReportTool/StylesReportTool.sln' solution: '**/tools/StylesReportTool/StylesReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Settings for Packaging displayName: Publish Settings for Packaging
inputs: inputs:
solution: 'src/settings-ui/Settings.UI/PowerToys.Settings.csproj' solution: 'src/settings-ui/Settings.UI/PowerToys.Settings.csproj'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Launcher for Packaging displayName: Publish Launcher for Packaging
inputs: inputs:
solution: 'src/modules/launcher/PowerLauncher/PowerLauncher.csproj' solution: 'src/modules/launcher/PowerLauncher/PowerLauncher.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Monaco Preview Handler for Packaging displayName: Publish Monaco Preview Handler for Packaging
inputs: inputs:
solution: 'src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandler.csproj' solution: 'src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandler.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Markdown Preview Handler for Packaging displayName: Publish Markdown Preview Handler for Packaging
inputs: inputs:
solution: 'src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandler.csproj' solution: 'src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandler.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Svg Preview Handler for Packaging displayName: Publish Svg Preview Handler for Packaging
inputs: inputs:
solution: 'src/modules/previewpane/SvgPreviewHandler/SvgPreviewHandler.csproj' solution: 'src/modules/previewpane/SvgPreviewHandler/SvgPreviewHandler.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish Svg Thumbnail Provider for Packaging displayName: Publish Svg Thumbnail Provider for Packaging
inputs: inputs:
solution: 'src/modules/previewpane/SvgThumbnailProvider/SvgThumbnailProvider.csproj' solution: 'src/modules/previewpane/SvgThumbnailProvider/SvgThumbnailProvider.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
- task: VSBuild@1 - task: VSBuild@1
displayName: Publish File Locksmith UI for Packaging displayName: Publish File Locksmith UI for Packaging
inputs: inputs:
solution: 'src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithUI.csproj' solution: 'src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithUI.csproj'
vsVersion: 17.0 vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml /p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
maximumCpuCount: true maximumCpuCount: true
# Check if deps.json files don't reference different dll versions. # Check if deps.json files don't reference different dll versions.
- task: PowerShell@2 - task: PowerShell@2
displayName: Audit deps.json files for all applications displayName: Audit deps.json files for all applications
inputs: inputs:
filePath: '.pipelines/verifyDepsJsonLibraryVersions.ps1' filePath: '.pipelines/verifyDepsJsonLibraryVersions.ps1'
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)' arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
pwsh: true pwsh: true
# Check if asset files on the main application paths are playing nice and avoiding basic conflicts. # Check if asset files on the main application paths are playing nice and avoiding basic conflicts.
- task: PowerShell@2 - task: PowerShell@2
displayName: Audit base applications path asset conflicts displayName: Audit base applications path asset conflicts
inputs: inputs:
filePath: '.pipelines/verifyPossibleAssetConflicts.ps1' filePath: '.pipelines/verifyPossibleAssetConflicts.ps1'
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)' arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
pwsh: true pwsh: true
- task: PowerShell@2 - task: PowerShell@2
displayName: Audit WinAppSDK applications path asset conflicts displayName: Audit WinAppSDK applications path asset conflicts
inputs: inputs:
filePath: '.pipelines/verifyPossibleAssetConflicts.ps1' filePath: '.pipelines/verifyPossibleAssetConflicts.ps1'
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)\WinUI3Apps' arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)\WinUI3Apps'
pwsh: true pwsh: true
#### MAIN SIGNING AREA #### MAIN SIGNING AREA
# reference https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/ESRPSigning.json&version=GBarm64-netcore&_a=contents for winappdriver # 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 # 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 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign Core PT displayName: Sign Core PT
inputs: inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection' ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: '$(BuildPlatform)/$(BuildConfiguration)' # Video conf uses x86 and x64. FolderPath: '$(BuildPlatform)/$(BuildConfiguration)' # Video conf uses x86 and x64.
signType: batchSigning signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_core.json' batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_core.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml' ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign x86 directshow VCM displayName: Sign x86 directshow VCM
inputs: inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection' ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'x86/$(BuildConfiguration)' # Video conf uses x86 and x64. FolderPath: 'x86/$(BuildConfiguration)' # Video conf uses x86 and x64.
signType: batchSigning signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_vcm.json' batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_vcm.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml' ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END SIGNING #### END SIGNING
## END MAIN ## END MAIN
- task: PublishBuildArtifacts@1 - pwsh: |-
displayName: 'Publish Artifact: binlog' Move-Item msbuild.binlog "$(Build.ArtifactStagingDirectory)/"
condition: failed() displayName: Stage binlog into artifact directory
continueOnError: True condition: always()
inputs:
PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog
ArtifactName: binlog-$(BuildPlatform)
- task: ComponentGovernanceComponentDetection@0 - task: ComponentGovernanceComponentDetection@0
displayName: Component Detection displayName: Component Detection
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copying files for symbols displayName: Copying files for symbols
inputs: inputs:
contents: >- contents: >-
**/*.pdb **/*.pdb
flattenFolders: True flattenFolders: True
targetFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/ targetFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
- task: PowerShell@2 - task: PowerShell@2
displayName: 'Remove unneeded files from ArtifactStagingDirectory' displayName: 'Remove unneeded files from ArtifactStagingDirectory'
inputs: inputs:
targetType: 'inline' targetType: 'inline'
script: | script: |
cd $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/ cd $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
Remove-Item vc143.pdb Remove-Item vc143.pdb
Remove-Item *test* Remove-Item *test*
- task: PublishSymbols@2 - task: PublishSymbols@2
displayName: Publish symbols path displayName: Publish symbols path
continueOnError: True continueOnError: True
inputs: inputs:
SearchPattern: | SearchPattern: |
$(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/**/*.* $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/**/*.*
IndexSources: false IndexSources: false
SymbolServerType: TeamServices SymbolServerType: TeamServices
- task: PublishBuildArtifacts@1 - template: .pipelines/installer-steps.yml@self
displayName: 'Publish Artifact: Symbols' parameters:
inputs: versionNumber: ${{ parameters.versionNumber }}
PathtoPublish: $(System.ArtifactsDirectory)/Symbols-$(BuildPlatform)/ perUserArg: "false"
ArtifactName: Symbols-${{ parameters.versionNumber }}-$(BuildPlatform) buildSubDir: "MachineSetup"
installerPrefix: "PowerToysSetup"
- task: DeleteFiles@1 - task: PowerShell@2
displayName: 'Remove symbols from ArtifactStagingDirectory' displayName: Clean installer dir before building per-user installer
inputs: inputs:
Contents: '*' targetType: inline
SourceFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/ script: git clean -xfd -e *exe -- .\installer\
RemoveSourceFolder: True pwsh: true
- template: installer-steps.yml - template: .pipelines/installer-steps.yml@self
parameters: parameters:
versionNumber: ${{ parameters.versionNumber }} versionNumber: ${{ parameters.versionNumber }}
perUserArg: "false" perUserArg: "true"
buildSubDir: "MachineSetup" buildSubDir: "UserSetup"
installerPrefix: "PowerToysSetup" installerPrefix: "PowerToysUserSetup"
- task: PowerShell@2 - task: CopyFiles@2
displayName: Clean installer dir before building per-user installer displayName: Copying setup file over
inputs: inputs:
targetType: inline contents: "**/PowerToys*Setup-*.exe"
script: git clean -xfd -e *exe -- .\installer\ flattenFolders: True
pwsh: true targetFolder: $(Build.ArtifactStagingDirectory)
- template: installer-steps.yml - task: PowerShell@2
parameters: displayName: 'Calculating SHA256 hash'
versionNumber: ${{ parameters.versionNumber }} inputs:
perUserArg: "true" targetType: 'inline'
buildSubDir: "UserSetup" script: |
installerPrefix: "PowerToysUserSetup" $p = "$(System.ArtifactsDirectory)\";
$staging = "$(Build.ArtifactStagingDirectory)\"
$userHash = ((get-item $p\PowerToysUserSetup*.exe | Get-FileHash).Hash);
$machineHash = ((get-item $p\PowerToysSetup*.exe | Get-FileHash).Hash);
$userPlat = "hash_user_$(BuildPlatform).txt";
$machinePlat = "hash_machine_$(BuildPlatform).txt";
$combinedUserPath = $staging + $userPlat;
$combinedMachinePath = $staging + $machinePlat;
echo $p
- task: CopyFiles@2 echo $userPlat
displayName: Copying setup file over echo $userHash
inputs: echo $combinedUserPath
contents: "**/PowerToys*Setup-*.exe"
flattenFolders: True
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PowerShell@2 echo $machinePlat
displayName: 'Calculating SHA256 hash' echo $machineHash
inputs: echo $combinedMachinePath
targetType: 'inline'
script: | $userHash | out-file -filepath $combinedUserPath
$p = "$(System.ArtifactsDirectory)\"; $machineHash | out-file -filepath $combinedMachinePath
$staging = "$(Build.ArtifactStagingDirectory)\" pwsh: true
$userHash = ((get-item $p\PowerToysUserSetup*.exe | Get-FileHash).Hash);
$machineHash = ((get-item $p\PowerToysSetup*.exe | Get-FileHash).Hash);
$userPlat = "hash_user_$(BuildPlatform).txt";
$machinePlat = "hash_machine_$(BuildPlatform).txt";
$combinedUserPath = $staging + $userPlat;
$combinedMachinePath = $staging + $machinePlat;
echo $p
echo $userPlat
echo $userHash
echo $combinedUserPath
echo $machinePlat
echo $machineHash
echo $combinedMachinePath
$userHash | out-file -filepath $combinedUserPath
$machineHash | out-file -filepath $combinedMachinePath
pwsh: true
- task: PublishBuildArtifacts@1
displayName: "Publish Artifact: PowerToySetup"
inputs:
PathtoPublish: $(System.ArtifactsDirectory)
ArtifactName: setup-$(BuildPlatform)
# Publishing the GPO files with a version number
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: GPO Files'
inputs:
PathtoPublish: src\gpo\assets
ArtifactName: GroupPolicyObjectsFiles-${{ parameters.versionNumber }}
# Publishing the GPO files
- pwsh: |-
New-Item "$(Build.ArtifactStagingDirectory)/gpo" -Type Directory
Copy-Item src\gpo\assets\* "$(Build.ArtifactStagingDirectory)/gpo" -Recurse
displayName: Stage the GPO files
... ...

7457
.pipelines/sdl.gdnbaselines Normal file

File diff suppressed because it is too large Load Diff