-
Notifications
You must be signed in to change notification settings - Fork 18
Reusable workflow for publishing package to WinGet #56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Since this doesn't trigger off the |
anamnavi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Had a question, but non-blocking and LGTM
|
I've created this issue #57 to track updating the manifest for preview, I have the logic from our existing workflow and will update this code with it once this PR gets in |
|
Also, the first time the msixbundle is to be added (i.e the manifest does not yet contain an entry for msix which it can update), the team can run the What would the architecture be? Would scope be user? It is and then in our existing winget manifest, where |
|
@anamnavi IIRC WinGet validation pipelines require that all of the MSIXBundle architectures are specified in the manifest, not a single one. So, in this case the installer node looks good but you would have to specify it for all architectures as well (the ones included in the MSIXBundle). Scope will be |
|
that makes sense for scope, thanks for clarifying!
do you mean that while we support both msi and msix installers, there would be 4 installer nodes for msixbundle (for x64, x86, arm, arm64) plus 4 installer nodes for msi's (for x64, x86, arm, arm64)? OR 4 installer nodes for msi (as it currently is) plus 1 for msixbundle |
|
@anamnavi I ran the following command to see how the updated manifest should look like Output PackageIdentifier: Microsoft.PowerShell
PackageVersion: 7.5.4.0
Installers:
- Architecture: x64
InstallerType: wix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi
InstallerSha256: 84A39D39F113F884333686C4DF70BC6C517F5B5D3982D88B4A0139F10EBB3FCB
ProductCode: '{E8159677-ACF8-4D64-9D36-5C36B8BBEA39}'
- Architecture: x86
InstallerType: wix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.msi
InstallerSha256: 397126D6C186ECF0A5F6F572D920E87F8602B728BE5B299B3401F34FB168B507
ProductCode: '{C0EB62EC-3584-4297-9585-00376F6598E6}'
- Architecture: arm64
InstallerType: wix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.msi
InstallerSha256: B7757B4D2477CE3A4426D87B1B84D827B2272F83C75C1C0C9FBC21264DA3ADCE
ProductCode: '{65823C8A-B1A9-40BD-AB10-D8174890930C}'
- Architecture: arm
InstallerType: wix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.msi
InstallerSha256: B7757B4D2477CE3A4426D87B1B84D827B2272F83C75C1C0C9FBC21264DA3ADCE
ProductCode: '{65823C8A-B1A9-40BD-AB10-D8174890930C}'
- Platform:
- Windows.Universal
MinimumOSVersion: 10.0.17763.0
Architecture: arm64
InstallerType: msix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4.msixbundle
InstallerSha256: B8EB615A572056659AE8F74F45DF8EF4B1C78524FC0F21A752D02A132EBD8C03
SignatureSha256: 052B1C58B50874A055F288B86C8307FD45A5560A6BAE5B4D5C69810126F2C7B4
PackageFamilyName: Microsoft.PowerShell_8wekyb3d8bbwe
- Platform:
- Windows.Universal
MinimumOSVersion: 10.0.17763.0
Architecture: x64
InstallerType: msix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4.msixbundle
InstallerSha256: B8EB615A572056659AE8F74F45DF8EF4B1C78524FC0F21A752D02A132EBD8C03
SignatureSha256: 052B1C58B50874A055F288B86C8307FD45A5560A6BAE5B4D5C69810126F2C7B4
PackageFamilyName: Microsoft.PowerShell_8wekyb3d8bbwe
- Platform:
- Windows.Universal
MinimumOSVersion: 10.0.17763.0
Architecture: x86
InstallerType: msix
InstallerUrl: https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4.msixbundle
InstallerSha256: B8EB615A572056659AE8F74F45DF8EF4B1C78524FC0F21A752D02A132EBD8C03
SignatureSha256: 052B1C58B50874A055F288B86C8307FD45A5560A6BAE5B4D5C69810126F2C7B4
PackageFamilyName: Microsoft.PowerShell_8wekyb3d8bbwe
ManifestType: installer
ManifestVersion: 1.10.0
ReleaseDate: 2025-10-20WinGetCreate didn't add |
|
Also, I'm not sure why we have |
thanks for providing the command output and example, I'll use that command for the initial manifest creation when msix is added. And yes, PowerShell doesn't create a msi for arm32, so the intention was to provide the arm64 url which works for arm32 when |
PR Summary
PR creates a GitHub action workflow to trigger on every stable release to publish
Microsoft.PowerShellpackage to WinGet repository. microsoft/winget-create is the tool used for creating and submitting the manifestSteps needed from maintainers
WINGET_CREATE_GITHUB_TOKENthat's a public access token (classic) withpublic_reposcope from the user account where the winget-pkgs fork will exist. Recommend using a bot account (@pwshBot ?) for this purpose.PR Context
Re-usable workflow version of PR: