From 05f85eb04105f864632391b625a60748cc1b730d Mon Sep 17 00:00:00 2001 From: Muhammad Danish <88161975+mdanish-kh@users.noreply.github.com> Date: Wed, 10 Jun 2026 21:23:15 +0500 Subject: [PATCH] Automate winget package submission --- .github/workflows/winget.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/winget.yml diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml new file mode 100644 index 0000000..bc72038 --- /dev/null +++ b/.github/workflows/winget.yml @@ -0,0 +1,35 @@ +name: Submit release to the WinGet community repository + +on: + release: + types: [published] + +jobs: + publish-winget: + name: Submit to WinGet repository + + # winget-create is only supported on Windows + runs-on: windows-latest + + # winget-create will read the following environment variable to access the GitHub token needed for submitting a PR + # See https://aka.ms/winget-create-token + env: + WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }} + + # Only submit stable releases + if: ${{ !github.event.release.prerelease }} + steps: + - name: Submit package using wingetcreate + run: | + # Get installer info from release event + $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json + $x64InstallerUrl = $assets | Where-Object -Property name -like '*x64.exe' | Select-Object -ExpandProperty browser_download_url + $arm64InstallerUrl = $assets | Where-Object -Property name -like '*arm64.exe' | Select-Object -ExpandProperty browser_download_url + $packageVersion = (${{ toJSON(github.event.release.tag_name) }}).Trim('v') + + # Update package using wingetcreate + curl.exe -JLO https://aka.ms/wingetcreate/latest + .\wingetcreate.exe update Microsoft.Coreutils ` + --version $packageVersion ` + --urls $x64InstallerUrl $arm64InstallerUrl ` + --submit