PowerToys/.pipelines/release.yml

541 lines
22 KiB
YAML
Raw Normal View History

Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
# This build should never run as CI or against a pull request.
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
trigger: none
pr: none
Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
resources:
repositories:
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
parameters:
- name: buildConfigurations
type: object
default:
- Release
- name: buildPlatforms
type: object
default:
- x64
- arm64
Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
- name: versionNumber
type: string
default: '0.0.1'
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters:
customBuildTags:
- 1ES.PT.ViaStartRight
pool:
name: SHINE-INT-S
image: SHINE-VS17-Latest
os: windows
sdl:
tsa:
enabled: true
configFile: '$(Build.SourcesDirectory)\.pipelines\tsa.json'
stages:
- stage: build
displayName: Build (Complete)
pool:
name: SHINE-INT-L
image: SHINE-VS17-Latest
os: windows
jobs:
- job: Build
strategy:
matrix:
${{ each config in parameters.buildConfigurations }}:
${{ each platform in parameters.buildPlatforms }}:
${{ config }}_${{ platform }}:
BuildConfiguration: ${{ config }}
BuildPlatform: ${{ platform }}
templateContext:
outputs:
- output: pipelineArtifact
artifactName: setup-$(BuildPlatform)
targetPath: $(Build.ArtifactStagingDirectory)
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
- task: PowerShell@1
displayName: Set Versions.Prop
inputs:
scriptName: .pipelines/versionSetting.ps1
arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
# ESRP needs 'Microsoft.NETCore.App', version '6.0.0' (x64)
- task: UseDotNet@2
displayName: 'Use .NET 6 SDK'
inputs:
packageType: sdk
version: '6.x'
- task: UseDotNet@2
🚧 [Dev][Build] .NET 8 Upgrade (#28655) * Upgraded projects to target .NET 8 * Updated .NET runtime package targets to use latest .NET 8 build * Updated PowerToys Interop to target .NET 8 * Switch to use ArgumentNullException.ThrowIfNull * ArgumentNullException.ThrowIfNull for CropAndLockViewModel * Switching to ObjectDisposedException.ThrowIf * Upgrade System.ComponentModel.Composition to 8.0 * ArgumentNullException.ThrowIfNull in Helper * Switch to StartsWith using StringComparison.Ordinal * Disabled CA1859, CA1716, SYSLIB1096 analyzers * Update RIDs to reflect breaking changes in .NET 8 * Updated Microsoft NuGet packages to RC1 * Updated Analyzer package to latest .NET 8 preview package * CA1854: Use TryGetValue instead of ContainsKey * [Build] Update TFM to .NET 8 for publish profiles * [Analyzers] Remove CA1309, CA1860-CA1865, CA1869, CA2208 from warning. * [Analyzers] Fix for C26495 * [Analyzers] Disable CS1615, CS9191 * [CI] Target .NET 8 in YAML * [CI] Add .NET preview version flag temporarily. * [FileLocksmith] Update TFM to .NET 8 * [CI] Switch to preview agent * [CI] Update NOTICE.md * [CI] Update Release to target .NET 8 and use Preview agent * [Analyzers] Disable CA1854 * Fix typo * Updated Microsoft.CodeAnalysis.NetAnalyzers to latest preview Updated packages to rc2 * [Analyzers][CPP] Turn off warning for 5271 * [Analyzers][CPP] Turn off warning for 26493 * [KeyboardListener] Add mutex include to resolve error * [PT Run][Folder] Use static SearchValues to resolve CA1870 * [PowerLauncher] Fix TryGetValue * [MouseJumpSettings] Use ArgumentNullException.ThrowIfNull * [Build] Disable parallel dotnet tool restore * [Build] No cache of dotnet tool packages * [Build] Temporarily move .NET 8 SDK task before XAML formatting * [Build][Temp] Try using .NET 7 prior to XAML formatting and then switch to .NET 8 after * [Build] Use .NET 6 for XAML Styler * [CI] Updated NOTICE.md * [FancyZones] Update TFM to .NET 8 * [EnvVar] Update TFM to .NET 8 and update RID * [EnvVar] Use ArgumentNullException.ThrowIfNull * [Dev] Updated packages to .NET 8 RTM version * [Dev] Updated Microsoft.CodeAnalysis.NetAnalyzers to latest * [CI] Updated NOTICE.md with latest package versions * Fix new utility target fameworks and runtimeids * Don't use preview images anymore * [CI] Add script to update VCToolsVersion environment variable * [CI] Add Step to Verify VCToolsVersion * [CI] Use latest flag for vswhere to set proper VCToolsVersion * Add VCToolsVersion checking to release.yml * Remove net publishing from local/ PR CI builds * Revert "Remove net publishing from local/ PR CI builds" This reverts commit f469778996c5053e8bf93233e8191858c46f6420. * Only publish necessary projects * Add verbosity to release pipelines builds of PowerTOys * Set VCToolsVersion for publish.cmd when called from installer * [Installer] Moved project publish logic to MSBuild Task * [CI] Revert using publish.cmd * [CI] Set VCToolsVersion and unset ClearDevCommandPromptEnvVars property * Installer publishes for x64 too * Revert "Add verbosity to release pipelines builds of PowerTOys" This reverts commit 654d4a7f7852e95e44df315c473c02d38b1f538b. * [Dev] Update CodeAnalysis library to non-preview package * Remove unneeded warning removal * Fix Notice.md * Rename VCToolsVersion file and task name * Remove unneeded mutex header include --------- Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2023-11-23 01:46:59 +08:00
displayName: 'Use .NET 8 SDK'
inputs:
packageType: sdk
🚧 [Dev][Build] .NET 8 Upgrade (#28655) * Upgraded projects to target .NET 8 * Updated .NET runtime package targets to use latest .NET 8 build * Updated PowerToys Interop to target .NET 8 * Switch to use ArgumentNullException.ThrowIfNull * ArgumentNullException.ThrowIfNull for CropAndLockViewModel * Switching to ObjectDisposedException.ThrowIf * Upgrade System.ComponentModel.Composition to 8.0 * ArgumentNullException.ThrowIfNull in Helper * Switch to StartsWith using StringComparison.Ordinal * Disabled CA1859, CA1716, SYSLIB1096 analyzers * Update RIDs to reflect breaking changes in .NET 8 * Updated Microsoft NuGet packages to RC1 * Updated Analyzer package to latest .NET 8 preview package * CA1854: Use TryGetValue instead of ContainsKey * [Build] Update TFM to .NET 8 for publish profiles * [Analyzers] Remove CA1309, CA1860-CA1865, CA1869, CA2208 from warning. * [Analyzers] Fix for C26495 * [Analyzers] Disable CS1615, CS9191 * [CI] Target .NET 8 in YAML * [CI] Add .NET preview version flag temporarily. * [FileLocksmith] Update TFM to .NET 8 * [CI] Switch to preview agent * [CI] Update NOTICE.md * [CI] Update Release to target .NET 8 and use Preview agent * [Analyzers] Disable CA1854 * Fix typo * Updated Microsoft.CodeAnalysis.NetAnalyzers to latest preview Updated packages to rc2 * [Analyzers][CPP] Turn off warning for 5271 * [Analyzers][CPP] Turn off warning for 26493 * [KeyboardListener] Add mutex include to resolve error * [PT Run][Folder] Use static SearchValues to resolve CA1870 * [PowerLauncher] Fix TryGetValue * [MouseJumpSettings] Use ArgumentNullException.ThrowIfNull * [Build] Disable parallel dotnet tool restore * [Build] No cache of dotnet tool packages * [Build] Temporarily move .NET 8 SDK task before XAML formatting * [Build][Temp] Try using .NET 7 prior to XAML formatting and then switch to .NET 8 after * [Build] Use .NET 6 for XAML Styler * [CI] Updated NOTICE.md * [FancyZones] Update TFM to .NET 8 * [EnvVar] Update TFM to .NET 8 and update RID * [EnvVar] Use ArgumentNullException.ThrowIfNull * [Dev] Updated packages to .NET 8 RTM version * [Dev] Updated Microsoft.CodeAnalysis.NetAnalyzers to latest * [CI] Updated NOTICE.md with latest package versions * Fix new utility target fameworks and runtimeids * Don't use preview images anymore * [CI] Add script to update VCToolsVersion environment variable * [CI] Add Step to Verify VCToolsVersion * [CI] Use latest flag for vswhere to set proper VCToolsVersion * Add VCToolsVersion checking to release.yml * Remove net publishing from local/ PR CI builds * Revert "Remove net publishing from local/ PR CI builds" This reverts commit f469778996c5053e8bf93233e8191858c46f6420. * Only publish necessary projects * Add verbosity to release pipelines builds of PowerTOys * Set VCToolsVersion for publish.cmd when called from installer * [Installer] Moved project publish logic to MSBuild Task * [CI] Revert using publish.cmd * [CI] Set VCToolsVersion and unset ClearDevCommandPromptEnvVars property * Installer publishes for x64 too * Revert "Add verbosity to release pipelines builds of PowerTOys" This reverts commit 654d4a7f7852e95e44df315c473c02d38b1f538b. * [Dev] Update CodeAnalysis library to non-preview package * Remove unneeded warning removal * Fix Notice.md * Rename VCToolsVersion file and task name * Remove unneeded mutex header include --------- Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2023-11-23 01:46:59 +08:00
version: '8.x'
- task: PowerShell@2
displayName: Verify and set latest VCToolsVersion usage
inputs:
filePath: '$(build.sourcesdirectory)\.pipelines\verifyAndSetLatestVCToolsVersion.ps1'
pwsh: true
- task: NuGetAuthenticate@1
- 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: 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@3
displayName: 'Download Localization Files -- PowerToys 37400'
inputs:
teamId: 37400
TDBuildServiceConnection: $(TouchdownServiceConnection)
authType: SubjectNameIssuer
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: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
### BEGIN SECTION - build and sign nuget packages for abstracted UI utils
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Sign Utilities libraries
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'src/modules'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_abstracted_utils_dll.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
- task: VSBuild@1
displayName: Create Hosts File Editor package
inputs:
solution: '**\HostsUILib.csproj'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Create Environment Variables Editor package
inputs:
solution: '**\EnvironmentVariablesUILib.csproj'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Create Registry Preview package
inputs:
solution: '**\RegistryPreviewUILib.csproj'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true -t:pack /bl:$(Build.SourcesDirectory)\msbuild.binlog
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: CopyFiles@2
displayName: Copying nuget packages file over
inputs:
contents: "**/bin/Release/PowerToys*.nupkg"
flattenFolders: True
targetFolder: $(Build.ArtifactStagingDirectory)/nupkg
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
displayName: Submit *.nupkg to ESRP for code signing
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: $(Build.ArtifactStagingDirectory)/nupkg
Pattern: '*.nupkg'
UseMinimatch: true
signConfigType: inlineSignParams
inlineOperation: >-
[
{
"KeyCode": "CP-401405",
"OperationCode": "NuGetSign",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-401405",
"OperationCode": "NuGetVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
### END SECTION - build and sign nuget packages for abstracted UI utils
- task: VSBuild@1
displayName: Build BugReportTool
inputs:
solution: '**/tools/BugReportTool/BugReportTool.sln'
vsVersion: 17.0
msbuildArgs: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /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: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /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: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /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
/graph
/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
/graph
/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
/graph
/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
/graph
/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
/graph
/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
/graph
/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
/graph
/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@3
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@3
displayName: Sign DSC Powershell files
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'src/dsc/Microsoft.PowerToys.Configure'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_DSC.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@3
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
- pwsh: |-
Move-Item msbuild.binlog "$(Build.ArtifactStagingDirectory)/"
displayName: Stage binlog into artifact directory
condition: always()
- 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
- template: .pipelines/installer-steps.yml@self
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
- template: .pipelines/installer-steps.yml@self
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
# 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
Add a new YAML release pipeline to replace the old CDPx one (#15039) * lets move unneeded stuff out * adding in direct installer yml * forcing internal * Create release.yml * Update release.yml * Try to use the right feed, scrub * What if we don't do package ES... * Update release.yml * Update release.yml * Update release.yml for Azure Pipelines * Update release.yml * Update release.yml * seeing where we are in the world * adjustment * fixed a copy/paste * think we're in root, having a dir command just to verify * start copying over core files * adding in tools + setup * fixing telem * ci: fix could not lock config file flakiness * forcing root dir * attempting to copy files again * adding notes * lets try this again * trying a quicker way to figure out root * maybe it is the slash not being there looking at docs deeper * playing with slashes * signing * tewak * fixing file path for signing. suprise, app driver and PT have different paths :) * getting my sign on * tweaking json * Adjusting files and getting output from build * fixing yml copy and paste oops * fixing spacing ... * getting bootstrapper added * moving file and seeing if we can't get this pipeline goodness working * trying my next oops at powershell ... * shift in version location i bet this will fail, doing a parallel build to verify * trying again for powershell passing in arg * Dustin showed me the error * forcing as string * fdsfasd * forcing as string * getting sad panda * trying to force array * lets try this on single line .... * i made a major oops * Sync'ing naming, adding in signing for msi & boot * breaking up signing into smaller bits * grr, not everything committed * Added a lot of comments * fixing installer signing path * fixing paths * seeing if this fixes some of the signing quirks * removing 3rd party double, removing the pipeline call * centeralizing again * more consolidation * Going a bit more wide * going very wide * seeing if i can't do a dual but more targetted list * think having leading slash caused a failure * looks like the esrp does not verify paths don't exist * fixing 3rd party * reseting old stuff so old pipeline still works * resetting version setting * [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026) * Fix localization This commit makes a few changes: 1. It introduces a couple scripts for moving localization files around based on Touchdown's output shape. They are well-documented. 2. It rewrites portions of the RESX->RC converter to avoid resgen and handle the new touchdown language types. * I forgot the cardinal rule of using YAML: Don't * Fix duplicate keys in Keyboard Editor! * Up the timeout * Update the language list in the wxs * Use IsPipeline * Special case SvgPreviewHandler >:{ * Push this down to Clint's branch: fix the publish profile * Reinstate the call to publish.cmd * Document it * build the publishing rules * Remove the GitSubmodules hack * Restore CDPx move_uwp_resources * Don't need this any more! spelling. * adding spelling * sorting alphabetical * fix spelling * shifint to new dll naming * Move GcodePreviewHandler's Resources to follow the preferred C# format * Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format" This reverts commit daf4c7ef3a87509b769be7bd0ad035074d50c4ea. * remove SVG workaround - requires #15054! * cleaning up commented code dustin said i could delete :) * fixing tab vs space * Update release.yml Fixing Dustin comments Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Dustin Howett <duhowett@microsoft.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-18 10:15:31 +08:00
...