Files
UVtools/.github/workflows/package-publish.yml
T
2022-11-10 04:11:07 +00:00

80 lines
2.9 KiB
YAML

name: Winget and Nuget package publish
on:
release:
types: [published]
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
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.Replace('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
# NOT WORKING
#homebrew:
# name: Homebrew Cask - Pull request
# runs-on: macos-latest
# steps:
# - run: export HOMEBREW_GITHUB_API_TOKEN=${HOMEBREW_GITHUB_API_TOKEN}
# - uses: macauley/action-homebrew-bump-cask@v1
# with:
# token: ${WINGET_TOKEN}
# cask: uvtools
nuget:
name: Nuget - Publish package
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v2
- 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: Set VERSION variable from tag
run: |
TAG=${{ github.event.release.tag_name }}
echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- name: Build
run: dotnet build --configuration Release
- name: Pack
run: dotnet pack UVtools.Core --configuration Release --no-build --output .
- name: Push nuget.org
run: dotnet nuget push UVtools.Core.${VERSION}.nupkg --source https://api.nuget.org/v3/index.json --api-key ${NUGET_TOKEN}