Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Winget and Nuget package publish | |
on: | |
release: | |
types: [released] | |
env: | |
WINGET_PACKAGE_NAME: .+win-x64.+\.msi | |
WINGET_PACKAGE_ID: PTRTECH.UVtools | |
WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }} | |
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.PUBLIC_ACCESS_TOKEN }} | |
NUGET_TOKEN: ${{ secrets.NUGET_TOKEN }} | |
jobs: | |
winget: | |
name: 🚀 Winget - Pull request | |
runs-on: windows-latest | |
steps: | |
- uses: vedantmgoyal2009/winget-releaser@v2 | |
with: | |
identifier: ${{ env.WINGET_PACKAGE_ID }} | |
token: ${{ env.WINGET_TOKEN }} | |
# Manual way | |
#winget: | |
# name: Winget - Pull request | |
# runs-on: windows-latest | |
# timeout-minutes: 10 | |
# steps: | |
# - name: Download WingetCreate.exe | |
# run: iwr -Uri https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe | |
# - name: Set VERSION variable from tag | |
# run: | | |
# $github = Get-Content '${{ github.event_path }}' | ConvertFrom-Json | |
# $version = $github.release.tag_name.Trim('v') | |
# if($version.Length -lt 5) | |
# { | |
# Write-Error "Version $version is too short!" | |
# exit -1 | |
# } | |
# Write-Output "Version: ${version}" | |
# "VERSION=${version}" >> $env:GITHUB_ENV | |
# - name: Set INSTALLER_URL variable from release asset | |
# run: | | |
# $github = Get-Content '${{ github.event_path }}' | ConvertFrom-Json | |
# $installerUrl = $github.release.assets | Where-Object -Property name -match "${env:WINGET_PACKAGE_NAME}" | Select -ExpandProperty browser_download_url -First 1 | |
# if($null -eq $installerUrl) | |
# { | |
# Write-Error "Installer URL not found on ${github.release.assets}" | |
# exit -1 | |
# } | |
# Write-Output "Installer url: ${installerUrl}" | |
# "INSTALLER_URL=${installerUrl}" >> $env:GITHUB_ENV | |
# - name: Submit package to Windows Package Manager Community Repository | |
# run: .\wingetcreate.exe update ${env:WINGET_PACKAGE_ID} --version ${env:VERSION} --urls ${env:INSTALLER_URL} --token ${env:WINGET_TOKEN} --submit | |
#homebrew: | |
# name: 🚀 Homebrew Cask - Pull request | |
# runs-on: macos-latest | |
# steps: | |
# - uses: macauley/action-homebrew-bump-cask@v1 | |
# with: | |
# token: ${{ env.WINGET_TOKEN }} | |
# cask: uvtools | |
nuget: | |
name: 📦 Nuget - Publish package | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: 🛒 Checkout | |
uses: actions/checkout@v4 | |
- name: Verify commit exists in origin/master | |
run: | | |
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* | |
git branch --remote --contains | grep origin/master | |
- name: 🟣 Setup .NET 7.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 7.0.x | |
#- name: Set VERSION variable from tag | |
# run: | | |
# TAG=${{ github.event.release.tag_name }} | |
# echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
- name: 📦 Pack | |
run: | | |
dotnet pack UVtools.Core --configuration Release --output . | |
dotnet pack UVtools.AvaloniaControls --configuration Release --output . | |
- name: 🚀 Push nuget.org | |
run: dotnet nuget push UVtools*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${NUGET_TOKEN} --skip-duplicate |