Skip to content

Publish to WinGet

Publish to WinGet #79

Workflow file for this run

name: Publish to WinGet
permissions:
contents: read
on:
workflow_dispatch:
jobs:
winget:
name: Publish to WinGet
runs-on: windows-latest
steps:
- name: Get Latest Release
shell: pwsh
run: |
$packageId = "AmN.yasb"
$gitToken = "${{ secrets.WINGET_TOKEN }}"
# Fetching latest release from GitHub
$github = Invoke-RestMethod -uri "https://api.github.com/repos/amnweb/yasb/releases"
$targetRelease = $github | Where-Object -Property name -match '^v'| Select-Object -First 1
$packageVersion = $targetRelease.tag_name.Trim("v")
# Get both x64 and aarch64 MSI URLs
$assets = $targetRelease | Select-Object -ExpandProperty assets
$x64Url = $assets | Where-Object -Property name -match 'x64\.msi$' | Select-Object -ExpandProperty browser_download_url
$aarch64Url = $assets | Where-Object -Property name -match 'aarch64\.msi$' | Select-Object -ExpandProperty browser_download_url
$relaseTitle = "New version: AmN.yasb version $packageVersion"
$relaseUrl = $targetRelease.html_url
$relaseDate = [datetime]::Parse($targetRelease.published_at).ToString("yyyy-MM-dd")
# Update package using wingetcreate with both architectures
Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
.\wingetcreate.exe update $packageId --version $packageVersion --urls "$x64Url|x64" "$aarch64Url|arm64" --prtitle "$relaseTitle" --release-notes-url "$relaseUrl" --release-date "$relaseDate" --submit --token $gitToken