Update the MSIXBundle-VPack pipeline to create VPack for both LTS and Stable channel packages#27384
Conversation
… Stable channel packages - Remove signed individual files from the output directory, to avoid the CredSign error that came from nowhere in the pipeline run on 4/23/26 - Update the pipeline to handle creating VPack packages for both the LTS and Stable channels - Move the pack-sign-create-vpack job to a template - Create 2 explicit jobs for creating LTS vpack and stable vpack respectively. The job is guarded by a condition to test if we are supposed to publish to the corresponding channel. The job is skipped if we are not publishing to that channel. - Use different VPack package names for those 2 branches -- `PowerShell7-LTS.Store.app` and `PowerShell7-Stable.Store.app`
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the MSIXBundle-VPack Azure Pipeline to produce VPack artifacts for both LTS and Stable channels, and restructures the bundling/signing logic via a reusable template.
Changes:
- Added a new
create-msixbundle-vpack.ymltemplate that bundles, signs, and stages MSIXBundle output per channel. - Updated the official pipeline to build MSIX packages for the enabled publish channels and run separate LTS/Stable VPack jobs conditionally.
- Removed an LTS-only gating check and added cleanup of the
Signed-$(Runtime)output to avoid signing-related pipeline failures.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| .pipelines/templates/create-msixbundle-vpack.yml | New template job to create/sign/stage an MSIXBundle and prepare VPack inputs per channel. |
| .pipelines/MSIXBundle-vPack-Official.yml | Pipeline now computes enabled publish channels from metadata.json and runs per-channel VPack creation via the new template. |
| ob_artifactBaseName: 'drop_pack_$(Channel)' | ||
| ob_createvpack_enabled: ${{ parameters.createVPack }} | ||
| ob_createvpack_packagename: 'PowerShell7-$(Channel).Store.app' | ||
| ob_createvpack_owneralias: 'dongbow' |
There was a problem hiding this comment.
does it need to be 1 person, or we can put the maintainers security group. Dont really know what that is used for. If they send emails to this, then having it for a DL might be better.
There was a problem hiding this comment.
I'm not super sure how this will be used. The PowerShell-vPack-Stages.yml one lists Travis as the only owner for now, so I did the same for this one. I will keep an eye on this and change both of them if we decide to use a security group.
PR Summary
Update the
MSIXBundle-VPackpipeline to create VPack for bothLTSandStablechannel packages.create-msixbundle-vpack.yml.PowerShell7-LTS.Store.appandPowerShell7-Stable.Store.appTest pipeline run: https://dev.azure.com/mscodehub/PowerShellCore/_build/results?buildId=675038&view=results
The pipeline skips
Bundle_LTSorBundle_Stablebased ontools/metadata.json.NOTE: It's easier to review the PR when ignoring the whitespace changes with
?w=1: https://github.com/PowerShell/PowerShell/pull/27384/changes?w=1