Add winget.yml to automate winget requests (#12026)

* Revert "Removed winget.yml" This reverts commit f32da000c43e8d50d5522da04dd6297d56bde8ea. * Updated to be release only * updates from PR

Craig Loewen committed Oct 3, 2024 at 13:48 UTC a7eaca8a1f05773cb1d71164ae0bda79da18f59b
1 file changed +30
.github/workflows/winget.yml new
+30
@@ -0,0 +1,30 @@
1 +name: Publish to Winget
2 +
3 +on:
4 + release:
5 + types: [published]
6 +
7 +jobs:
8 + publish:
9 + if: github.event.release.prerelease == false
10 + runs-on: windows-latest # Action can only run on Windows
11 + steps:
12 + - name: Publish WSL
13 + run: |
14 +
15 + Set-StrictMode -Version Latest
16 + $ErrorActionPreference = "Stop"
17 +
18 + $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json
19 + $wingetRelevantAssetx64 = $assets | Where-Object { $_.name -like '*x64.msi' } | Select-Object -First 1
20 + $wingetRelevantAssetARM64 = $assets | Where-Object { $_.name -like '*arm64.msi' } | Select-Object -First 1
21 +
22 + $version = "${{ github.event.release.tag_name }}"
23 +
24 + $wingetx64URL = $wingetRelevantAssetx64.browser_download_url
25 + $wingetARM64URL = $wingetRelevantAssetARM64.browser_download_url
26 +
27 + $wingetPackage = "Microsoft.WSL"
28 +
29 + & curl.exe -JLO https://aka.ms/wingetcreate/latest
30 + & .\wingetcreate.exe update $wingetPackage -s -v $version -u "$wingetx64URL|x64" "$wingetARM64URL|arm64" -t "${{ secrets.WINGET_TOKEN }}"