mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-04 11:59:07 +08:00
864b862952
* Flatten everything and succeed build * Figure out Settings assets * Remove UseCommonOutputDirectory tag * Proper settings app path * [VCM] Fix assets location * Fix some runtime paths * [RegistryPreview]Use MRTCore specific pri file * [Hosts]Use MRTCore specific pri file * [Settings]Use MRTCore specific pri file * [Peek]Use MRTCore specific pri file * [FileLocksmith]Use MRTCore specific pri file * [ScreenRuler]Use MRTCore specific pri file * [PowerRename]Use MRTCore specific pri file * [Peek]Move assets to own folder * [FileLocksmith] Use own Assets path * [Hosts]Use own assets folder * [PowerRename]Use own assets dir * [MeasureTool] Use its own assets folder * [ImageResizer]Use its own assets path * Fix spellcheck * Fix tab instead of space in project files * Normalize target frameworks and platforms * Remove WINRT_NO_MAKE_DETECTION flag. No longer needed? * Fix AOT and Hosts locations * Fix Dll version differences on dependency * Add Common.UI.csproj as refernce to fix dll versions * Update ControlzEx to normalize dll versions * Update System.Management version to 7.0.2 * Add GPOWrapper to Registry Preview to fix dll versions * [PTRun]Reference Microsoft.Extensions.Hosting to fix dll versions * Fix remaining output paths / dll version conflicts * [KeyboardManager]Executables still on their own directories * Fix Monaco paths * WinAppSDK apps get to play outside again * Enable VCM settings again * Fix KBM Editor path again * [Monaco]Set to own Assets dir * Fix installer preamble; Fix publish. remove unneeded publishes * Remove Hardlink functions * Installer builds again (still needs work to work) * Readd Monaco to spellcheck excludes * Fix spellcheck and call publish.cmd again * [Installer] Remove components that don't need own dirs * [Installer] Refactor Power Launcher * [Installer] Refactor Color Picker * [Installer] Refactor Monaco assets * [Installer]Generate File script no longer needs to remove files * [Installer]Refactor FileLocksmith * [Installer] Refactor Hosts * [Installer]Refactor Image Resizer * [Installer]Refactor MouseUtils * [Installer]Refactor MWB * [Installer]Refactor MeasureTool * [Installer]Refactor Peek * [Installer]Refactor PowerRename and registry fixes * [Installer]Refactor RegistryPreview * [Installer]Refactor ShortcutGuide * [Installer]Refactor Settings * [Installer]Clean up some unused stuff * [Installer]Clean up stuff for user install * [Installer]Fix WinUi3Apps wxs * [Installer]Fix misplaced folders * [Installer]Move x86 VCM dll to right path * Fix monaco language list location * [Installer]Fix VCM directory reference * [CI]Fix signing * [Installer] Fix resources folder for release CI * [ci]Looks like we still ship NLog on PowerToys Run * [Settings]Add dependency to avoid dll collision with Experimentation * [RegistryPreview]Move XAML files to own path * [RegistryPreview]Fix app icon * [Hosts]Move XAML files to their own path * [FileLocksmith]Move XAML files to their own path * [Peek]Move XAML files to own path * [ScreenRuler]Move XAML files to its own path * [Settings]Move XAML to its own path * [ColorPicker]Move Resources to Assets * [ShortcutGuide]Move svgs to own Assets path * [Awake]Move images to assets path * [Runner]Remove debug checks for PowerToys Run assets * [PTRun]Move images to its own assets path * [ImageResizer]Icon for context menu on own assets path * [PowerRename]Move ico to its own path * Remove unneeded intermediary directories * Remove further int dirs * Move tests to its own output path * Fix spellcheck * spellcheck: remove warnings * [CppAnalyzers]Ignore rule in a tool * [CI]Check if all deps.json files reference same versions * fix spellcheck * [ci]Fix task identation * [ci]Add script to guard against asset conflicts * [ci]Add more deps.json audit steps in the release build * Add xbf to spellcheck expects * Fix typo in asset conflict check scripts * Fix some more dependency conflicts * Downgrade CsWinRT to have the same dll version as sdk * [ci]Do a recursive check for every deps.json * Fix spellcheck error inside comment * [ci]Fix asset script error * [ci]Name deps.json verify tasks a bit better * [ci]Improve deps json verify script output * [ci]Update WinRT version to the same running in CI * Also upgrade CsWinRT in NOTICE.MD * [PowerRename]Move XAML files to own path * [Common]Fix Settings executable path * [ci]Verify there's no xbf files in app directories * [installer]Fix firewall path * [Monaco]Move new files to their proper assets path * [Monaco]Fix paths for new files after merge * [Feedback]Removed unneeded build conditions * [Feedback]Clear vcxproj direct reference to frameworks * [Feedback]RunPlugins name to hold PTRun plugins * [Feedback]Remove unneeded foreach * [Feedback]Shortcut Guide svgs with ** in project file * [Feedback]Fix spellcheck
465 lines
16 KiB
YAML
465 lines
16 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
|
|
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
|
|
|
|
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 }}
|
|
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=${{ platform }} # Required for nuget to work due to self contained
|
|
NODE_OPTIONS: --max_old_space_size=16384
|
|
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 7 SDK'
|
|
inputs:
|
|
packageType: sdk
|
|
version: '7.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: 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 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
|
|
|
|
# Check if deps.json files don't reference different dll versions.
|
|
- task: PowerShell@2
|
|
displayName: Audit deps.json files for all applications
|
|
inputs:
|
|
filePath: '.pipelines/verifyDepsJsonLibraryVersions.ps1'
|
|
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
|
|
pwsh: true
|
|
|
|
# Check if asset files on the main application paths are playing nice and avoiding basic conflicts.
|
|
- task: PowerShell@2
|
|
displayName: Audit base applications path asset conflicts
|
|
inputs:
|
|
filePath: '.pipelines/verifyPossibleAssetConflicts.ps1'
|
|
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
|
|
pwsh: true
|
|
|
|
- task: PowerShell@2
|
|
displayName: Audit WinAppSDK applications path asset conflicts
|
|
inputs:
|
|
filePath: '.pipelines/verifyPossibleAssetConflicts.ps1'
|
|
arguments: -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)\WinUI3Apps'
|
|
pwsh: 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 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
|
|
|
|
- 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
|
|
|
|
- template: installer-steps.yml
|
|
parameters:
|
|
versionNumber: ${{ parameters.versionNumber }}
|
|
perUserArg: "false"
|
|
buildSubDir: "MachineSetup"
|
|
installerPrefix: "PowerToysSetup"
|
|
|
|
- task: PowerShell@2
|
|
displayName: Clean installer dir before building per-user installer
|
|
inputs:
|
|
targetType: inline
|
|
script: git clean -xfd -e *exe -- .\installer\
|
|
pwsh: true
|
|
|
|
- task: NuGetCommand@2
|
|
displayName: NuGet restore solutions dependencies
|
|
inputs:
|
|
command: restore
|
|
restoreSolution: 'installer/*.sln'
|
|
selectOrConfig: config
|
|
nugetConfigPath: .pipelines/release-nuget.config
|
|
|
|
- template: installer-steps.yml
|
|
parameters:
|
|
versionNumber: ${{ parameters.versionNumber }}
|
|
perUserArg: "true"
|
|
buildSubDir: "UserSetup"
|
|
installerPrefix: "PowerToysUserSetup"
|
|
|
|
- task: CopyFiles@2
|
|
displayName: Copying setup file over
|
|
inputs:
|
|
contents: "**/PowerToys*Setup-*.exe"
|
|
flattenFolders: True
|
|
targetFolder: $(Build.ArtifactStagingDirectory)
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Calculating SHA256 hash'
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
$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
|
|
|
|
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 }}
|
|
|
|
|
|
...
|