name: Publish to Winget

on:
  release:
    types: [released]

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 }}"
