[release/v7.6] Create infrastructure to create two msixs and msixbundles for LTS and Stable #27071
Conversation
…les for LTS and Stable (PowerShell#27069)
There was a problem hiding this comment.
Pull request overview
Backport to release/v7.6.0 that updates Windows packaging/pipeline logic to support producing both Stable and LTS MSIX/MSIXBundle outputs in the same run, and to ensure store packaging uses the correct bundle for the selected channel.
Changes:
- Adjust MSIX package naming composition in
New-MSIXPackageto build the base package name after channel-specific name mutations (Stable/Preview/LTS/Private). - Update the Windows packaging pipeline to optionally build an additional Stable MSIX when both LTS and Stable packaging are requested.
- Update the MSIX bundling pipeline to create separate LTS vs Stable/Preview
.msixbundlefiles and select the correct one for StoreBroker packaging.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
tools/packaging/packaging.psm1 |
Refactors MSIX package name/display name construction to support side-by-side channel outputs more cleanly. |
.pipelines/templates/packaging/windows/package.yml |
Adds Stable packaging flag handling and triggers an extra Stable MSIX build when LTS+Stable are both enabled. |
.pipelines/templates/package-create-msix.yml |
Splits MSIX inputs into LTS vs non-LTS sets, builds two bundles, uploads both, and selects the right bundle for store packaging by channel. |
Comments suppressed due to low confidence (1)
.pipelines/templates/package-create-msix.yml:121
- Same issue for the LTS bundle creation: if
makeappx bundlefails, this script can still continue successfully. Add explicit exit-code handling (or use the standard native execution wrapper) so the job stops on bundling errors.
$file = $ltsMsix | Select-Object -First 1
$prefix = ($file.BaseName -split "-win")[0]
$ltsBundleName = "$prefix.msixbundle"
Write-Verbose -Verbose "Creating LTS bundle: $ltsBundleName"
& $makeappx bundle /d $ltsDir /p "$outputDir\$ltsBundleName"
}
| $file = $stableMsix | Select-Object -First 1 | ||
| $prefix = ($file.BaseName -split "-win")[0] | ||
| $stableBundleName = "$prefix.msixbundle" | ||
| Write-Verbose -Verbose "Creating Stable/Preview bundle: $stableBundleName" | ||
| & $makeappx bundle /d $stableDir /p "$outputDir\$stableBundleName" | ||
| } |
There was a problem hiding this comment.
makeappx bundle is invoked via the call operator, which won’t fail the step on a non-zero native exit code by default. Please ensure the pipeline fails when bundling fails (e.g., check $LASTEXITCODE after the call and throw, or use the repo’s native-execution helper) so we don’t publish missing/invalid bundles.
This issue also appears on line 116 of the same file.
PR Summary
Backport of #27056 to release/v7.6.0