diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml new file mode 100644 index 00000000..0d00b33a --- /dev/null +++ b/.github/workflows/winget.yml @@ -0,0 +1,30 @@ +name: Publish to Winget + +on: + release: + types: [published] + +jobs: + publish: + if: github.event.release.prerelease == false + runs-on: windows-latest # Action can only run on Windows + steps: + - name: Publish WSL + run: | + + Set-StrictMode -Version Latest + $ErrorActionPreference = "Stop" + + $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json + $wingetRelevantAssetx64 = $assets | Where-Object { $_.name -like '*x64.msi' } | Select-Object -First 1 + $wingetRelevantAssetARM64 = $assets | Where-Object { $_.name -like '*arm64.msi' } | Select-Object -First 1 + + $version = "${{ github.event.release.tag_name }}" + + $wingetx64URL = $wingetRelevantAssetx64.browser_download_url + $wingetARM64URL = $wingetRelevantAssetARM64.browser_download_url + + $wingetPackage = "Microsoft.WSL" + + & curl.exe -JLO https://aka.ms/wingetcreate/latest + & .\wingetcreate.exe update $wingetPackage -s -v $version -u "$wingetx64URL|x64" "$wingetARM64URL|arm64" -t "${{ secrets.WINGET_TOKEN }}"