diff --git a/.github/workflows/releaseToWinGet.yml b/.github/workflows/releaseToWinGet.yml new file mode 100644 index 0000000..e61d464 --- /dev/null +++ b/.github/workflows/releaseToWinGet.yml @@ -0,0 +1,56 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the BSD license. + +name: Release to WinGet + +on: + workflow_dispatch: + release: + types: [created] + +defaults: + run: + shell: pwsh + +env: + PACKAGE_URLS: "" + +jobs: + release-to-winget: + runs-on: windows-latest + + steps: + - run: | + $repo = "powershell/win32-openssh" + $releases = "https://api.github.com/repos/$repo/releases" + $releaseInfo = (Invoke-WebRequest $releases | ConvertFrom-Json)[0] + $tag = $releaseInfo.tag_name + forEach ($filename in $releaseInfo.assets.name) { + if ($filename.split(".")[-1] -contains "msi") { + if ($filename.split("-")[1] -contains "Win32") { + $msi_x86 = "https://github.com/$repo/releases/download/$tag/$filename" + } + if ($filename.split("-")[1] -contains "Win64") { + $msi_x64 = "https://github.com/$repo/releases/download/$tag/$filename" + } + } + } + echo "URL_X86=$msi_x86" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append + echo "URL_X64=$msi_x64" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append + name: Get Release URLs + + - run: | + # Download and install C++ Runtime framework package. + Import-Module Appx -UseWindowsPowerShell + iwr https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile vcLibsBundle.appx + Add-AppxPackage vcLibsBundle.appx + + # Download Winget-Create msixbundle, install, and execute update. + iwr https://aka.ms/wingetcreate/latest/msixbundle -OutFile winGetBundle.appx + Add-AppxPackage winGetBundle.appx + name: Download WinGet Requirements + + - run: | + # wingetcreate update Microsoft.OpenSSH.Beta -u @($env:URL_X86, $env:URL_X64) -o $env:GITHUB_WORKSPACE + wingetcreate update Microsoft.OpenSSH.Beta -u @($env:URL_X86, $env:URL_X64) -t ${{ secrets.WINGETTOKEN }} --submit + name: WinGet Update