Skip to content

Commit 90990fa

Browse files
authored
Add action for publishing package to WinGet (#962)
1 parent eacf354 commit 90990fa

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Submit published release to WinGet community repository
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
publish-winget:
9+
name: Submit to WinGet repository
10+
runs-on: windows-latest
11+
steps:
12+
# wingetcreate would sync fork automatically, but it may fail to do so if the fork
13+
# is behind way too many commits or if the token doesn't have the right scopes.
14+
# We sync the fork manually here to avoid any issues. Ref: https://github.com/microsoft/winget-create/issues/502
15+
- name: Sync winget-pkgs fork
16+
run: gh repo sync garrytrinder/winget-pkgs -b master
17+
env:
18+
GH_TOKEN: ${{ secrets.WINGET_GITHUB_TOKEN }}
19+
- name: Submit package using wingetcreate
20+
run: |
21+
# Get installer info from release event
22+
$assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json
23+
$x64InstallerUrl = $assets | Where-Object -Property name -match 'dev-proxy-installer-win-x64-v.*exe$' | Select-Object -First 1 | Select -ExpandProperty browser_download_url
24+
$packageVersion = (${{ toJSON(github.event.release.tag_name) }}).Trim('v')
25+
$isPrerelease = '${{ toJSON(github.event.release.prerelease) }}' | ConvertFrom-Json
26+
27+
# WinGet PackageIdentifier
28+
$packageId = $isPrerelease ? "Microsoft.DevProxy.Beta" : "Microsoft.DevProxy"
29+
30+
# Update package using wingetcreate
31+
Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
32+
.\wingetcreate.exe update $packageId --version $packageVersion --urls "$x64InstallerUrl|x64" --submit --token "${{ secrets.WINGET_GITHUB_TOKEN }}"

0 commit comments

Comments
 (0)