Skip to content

[release/v7.4] Optimize/split windows package signing#26413

Merged
TravisEz13 merged 1 commit intoPowerShell:release/v7.4from
TravisEz13:backport/release/v7.4/26403-3596ffa90
Nov 10, 2025
Merged

[release/v7.4] Optimize/split windows package signing#26413
TravisEz13 merged 1 commit intoPowerShell:release/v7.4from
TravisEz13:backport/release/v7.4/26403-3596ffa90

Conversation

@TravisEz13
Copy link
Member

Backport of #26403 to release/v7.4

Triggered by @TravisEz13 on behalf of @TravisEz13

Original CL Label: CL-BuildPackaging

/cc @PowerShell/powershell-maintainers

Impact

Tooling Impact

  • Required tooling change

Optimizes and splits Windows package signing workflow in OneBranch pipelines. Refactors templates to improve modularity and signing phase separation.

Regression

  • No

This is a pipeline optimization and refactoring, not fixing a regression.

Testing

Verified by:

  1. Cherry-pick applied successfully with conflict resolution
  2. All pipeline template changes validated for syntax
  3. Refactoring maintains same functionality with improved structure

Risk

  • High
  • Medium
  • Low

High risk as it modifies build and signing infrastructure across multiple pipeline templates. However, necessary to maintain pipeline consistency with master branch improvements. Changes optimize signing workflow separation which is critical for OneBranch compliance.

Merge Conflicts Resolution

The following files had conflicts during cherry-pick:

.pipelines/templates/SetVersionVariables.yml

  • Conflict Type: Code refactoring differences
  • Cause: Release branch has inline repo root detection; main branch refactored to use set-reporoot.yml template
  • Resolution: Accepted incoming changes - the refactored version using set-reporoot.yml template
  • Rationale: The refactoring improves code reusability and is part of the optimization this PR intends

.pipelines/templates/packaging/windows/package.yml

  • Conflict Type: Comment/display name differences
  • Cause: Main branch added 'unsigned' prefix to log messages; release branch had different artifact handling
  • Resolution: Applied incoming changes - removed exe package handling and updated display names to 'unsigned'
  • Rationale: Changes clarify that these are unsigned packages and align with the PR's intent to separate build and signing stages

.pipelines/MSIXBundle-vPack-Official.yml

  • Conflict Type: Modify/delete conflict
  • Cause: File doesn't exist in release/v7.4 branch
  • Resolution: Kept it deleted (excluded from backport)
  • Rationale: File is not present in the v7.4 release branch, so changes to it are not applicable

@TravisEz13 TravisEz13 requested a review from a team as a code owner November 10, 2025 19:17
Copilot AI review requested due to automatic review settings November 10, 2025 19:17
@TravisEz13 TravisEz13 added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Nov 10, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR backports Windows package signing optimizations from the main branch to release/v7.4, splitting the build and signing workflow into separate stages to improve performance and compliance with OneBranch pipelines.

Key Changes:

  • Splits Windows package workflow into separate build and signing stages
  • Introduces new sign.yml template for dedicated signing operations
  • Refactors SetVersionVariables.yml to use extracted set-reporoot.yml template
  • Removes UseJson parameter across multiple templates (standardizing to CreateJson)
  • Adds parameterization for ob_restore_phase across reusable templates

Reviewed Changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
.pipelines/templates/packaging/windows/sign.yml New template for Windows package signing (MSI and EXE)
.pipelines/templates/packaging/windows/package.yml Refactored to build-only job, removed signing steps, disabled signing setup
.pipelines/PowerShell-Packages-Official.yml Split windows_package stage into windows_package_build and windows_package_sign
.pipelines/templates/SetVersionVariables.yml Refactored to use set-reporoot.yml template, added ob_restore_phase parameter
.pipelines/templates/set-reporoot.yml New extracted template for setting repository root
.pipelines/templates/shouldSign.yml Added ob_restore_phase parameter
.pipelines/templates/install-dotnet.yml Added ob_restore_phase parameter
.pipelines/templates/cloneToOfficialPath.yml Added validation and ob_restore_phase parameter
Multiple template callers Removed UseJson parameter, standardized to CreateJson only
.github/instructions/*.instructions.md Added comprehensive documentation for OneBranch patterns

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@TravisEz13 TravisEz13 merged commit ac01f2d into PowerShell:release/v7.4 Nov 10, 2025
41 of 42 checks passed
@TravisEz13 TravisEz13 deleted the backport/release/v7.4/26403-3596ffa90 branch November 10, 2025 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants