[release/v7.5] Optimize/split windows package signing#26815
Merged
daxian-dbw merged 1 commit intoPowerShell:release/v7.5from Feb 13, 2026
Merged
Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR backports optimizations to Windows package signing from the main branch (#26403) to release/v7.5. It restructures the packaging pipeline to separate build and signing operations into distinct stages, adds comprehensive OneBranch configuration documentation, and refactors templates to properly handle restore phase configuration.
Changes:
- Split Windows packaging into separate
windows_package_buildandwindows_package_signstages for better modularity and clarity - Added comprehensive OneBranch documentation covering signing configuration patterns, restore phase usage, code review branch strategy, and build configuration
- Refactored templates to accept and propagate
ob_restore_phaseparameter consistently, removing deprecatedUseJsonparameter
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
.pipelines/PowerShell-Packages-Official.yml |
Split windows_package stage into separate build and sign stages with correct dependencies |
.pipelines/templates/packaging/windows/package.yml |
Refactored as build-only stage (no signing), produces unsigned MSI/ZIP/MSIX packages |
.pipelines/templates/packaging/windows/sign.yml |
New template for signing stage, signs MSI/EXE packages and produces final artifacts |
.pipelines/templates/set-reporoot.yml |
New template to set REPOROOT variable, extracted from SetVersionVariables.yml |
.pipelines/templates/SetVersionVariables.yml |
Refactored to use set-reporoot template, removed UseJson parameter, added ob_restore_phase parameter |
.pipelines/templates/cloneToOfficialPath.yml |
Added ob_restore_phase parameter and REPOROOT validation logic |
.pipelines/templates/install-dotnet.yml |
Added ob_restore_phase parameter for consistency |
.pipelines/templates/shouldSign.yml |
Added ob_restore_phase parameter for consistency |
.pipelines/templates/package-create-msix.yml |
Updated artifact names to match new naming convention (drop_windows_package_*) |
.pipelines/templates/*.yml (multiple) |
Removed UseJson parameter, kept only CreateJson |
.pipelines/templates/checkAzureContainer.yml |
Added ob_artifactBaseName variable, removed UseJson parameter |
.github/instructions/onebranch-signing-configuration.instructions.md |
New comprehensive guide for OneBranch signing configuration patterns |
.github/instructions/onebranch-restore-phase-pattern.instructions.md |
New guide documenting the correct restore phase pattern for templates |
.github/instructions/code-review-branch-strategy.instructions.md |
New guide for Copilot on handling backport vs default branch fixes |
.github/instructions/build-configuration-guide.md |
Extended scope to include .pipelines/**/*.yml files |
.github/chatmodes/cherry-pick-commits.chatmode.md |
New Copilot chatmode for cherry-picking commits between branches |
.pipelines/templates/release-*.yml (3 files) |
Deleted unused release templates |
SeeminglyScience
approved these changes
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #26403 to release/v7.5
Triggered by @daxian-dbw on behalf of @TravisEz13
Original CL Label: CL-BuildPackaging
/cc @PowerShell/powershell-maintainers
Impact
REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.
Tooling Impact
Splits Windows packaging into separate build and sign stages, adds OneBranch documentation, refactors restore phase configuration
Customer Impact
Regression
REQUIRED: Check exactly one box.
This is not a regression.
Testing
Changes have been tested in 7.4 and 7.6 releases. Pipeline refactoring maintains existing functionality with improved stage separation.
Risk
REQUIRED: Check exactly one box.
Refactors Windows package build and signing stages, splitting them for better modularity. Includes documentation improvements and restore phase refactoring. Successfully backported to 7.4 and 7.6 branches.
Merge Conflicts
Conflicts in build-configuration-guide.md and windows/package.yml resolved - context differences in pipeline templates and instruction files