Update README #547
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: Publish to NuGet | |
on: | |
push: | |
branches: | |
- "*" | |
pull_request: | |
# to update branch that publish happens on, edit the if: statement for the publish job | |
jobs: | |
test: | |
name: Unit testing | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- uses: nuget/setup-nuget@v1 | |
with: | |
nuget-api-key: ${{secrets.NUGET_API_KEY}} | |
nuget-version: '5.x' | |
# - name: Add MSBuild to PATH | |
# uses: microsoft/setup-msbuild@v1.1.3 | |
- name: Setup .NET 6.0, 7.0, 8.0 for tests | |
uses: actions/setup-dotnet@v3.2.0 | |
with: | |
dotnet-version: | | |
6.0.x | |
7.0.x | |
8.0.x | |
- name: Run NetSparkle.Tests in .NET 6 | |
run: dotnet test -f net6.0 ${{ github.workspace }}/src/NetSparkle.Tests/NetSparkle.Tests.csproj | |
- name: Run NetSparkle.Tests.AppCastGenerator in .NET 6 | |
run: dotnet test -f net6.0 ${{ github.workspace }}/src/NetSparkle.Tests.AppCastGenerator/NetSparkle.Tests.AppCastGenerator.csproj | |
- name: Run NetSparkle.Tests in .NET 7 | |
run: dotnet test -f net7.0 ${{ github.workspace }}/src/NetSparkle.Tests/NetSparkle.Tests.csproj | |
- name: Run NetSparkle.Tests.AppCastGenerator in .NET 7 | |
run: dotnet test -f net7.0 ${{ github.workspace }}/src/NetSparkle.Tests.AppCastGenerator/NetSparkle.Tests.AppCastGenerator.csproj | |
- name: Run NetSparkle.Tests in .NET 8 | |
run: dotnet test -f net8.0 ${{ github.workspace }}/src/NetSparkle.Tests/NetSparkle.Tests.csproj | |
- name: Run NetSparkle.Tests.AppCastGenerator in .NET 8 | |
run: dotnet test -f net8.0 ${{ github.workspace }}/src/NetSparkle.Tests.AppCastGenerator/NetSparkle.Tests.AppCastGenerator.csproj | |
publish: | |
name: Build and publish all packages to NuGet | |
runs-on: windows-latest | |
needs: test | |
if: github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/avalonia-preview' || github.ref == 'refs/heads/versions/2.x' | |
# Need to set ACTIONS_ALLOW_UNSECURE_COMMANDS for microsoft/setup-msbuild@v1.0.0 to work as it uses the now-deprecated addPath method | |
#env: | |
# ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
# microsoft/setup-msbuild@v1.1.3 fixes that deprecation issue. | |
steps: | |
- uses: actions/checkout@v4.1.1 | |
- uses: nuget/setup-nuget@v1 | |
with: | |
nuget-api-key: ${{secrets.NUGET_API_KEY}} | |
nuget-version: '5.x' | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v1.3.1 | |
- name: Setup .NET 6.0, 7.0, 8.0 | |
uses: actions/setup-dotnet@v3.2.0 | |
with: | |
dotnet-version: | | |
6.0.x | |
7.0.x | |
8.0.x | |
- name: Clean things to be safe | |
run: | | |
dotnet clean ${{ github.workspace }}/src/NetSparkle/NetSparkle.csproj --configuration Release | |
dotnet clean ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetCore/NetSparkle.UI.WinForms.NetCore.csproj --configuration Release | |
dotnet clean ${{ github.workspace }}/src/NetSparkle.UI.WPF/NetSparkle.UI.WPF.csproj --configuration Release | |
dotnet clean ${{ github.workspace }}/src/NetSparkle.Tools.AppCastGenerator/NetSparkle.Tools.AppCastGenerator.csproj --configuration Release | |
dotnet clean ${{ github.workspace }}/src/NetSparkle.Tools.DSAHelper/NetSparkle.Tools.DSAHelper.csproj --configuration Release | |
- name: Build NetSparkle in Release | |
run: dotnet build ${{ github.workspace }}/src/NetSparkle/NetSparkle.csproj --configuration Release | |
- name: Build NetSparkle.UI.WinForms.NetCore in Release | |
run: dotnet build ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetCore/NetSparkle.UI.WinForms.NetCore.csproj --configuration Release | |
- name: Build NetSparkle.UI.WPF in Release | |
run: dotnet build ${{ github.workspace }}/src/NetSparkle.UI.WPF/NetSparkle.UI.WPF.csproj --configuration Release | |
- name: Build NetSparkle.Tools.AppCastGenerator in Release | |
run: dotnet build ${{ github.workspace }}/src/NetSparkle.Tools.AppCastGenerator/NetSparkle.Tools.AppCastGenerator.csproj --configuration Release | |
- name: Build NetSparkle.Tools.DSAHelper in Release | |
run: dotnet build ${{ github.workspace }}/src/NetSparkle.Tools.DSAHelper/NetSparkle.Tools.DSAHelper.csproj --configuration Release | |
- name: Publish NetsparkleUpdater.NetSparkle on version change | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle/NetSparkle.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.NetSparkle | |
INCLUDE_SYMBOLS: true | |
- name: Publish NetSparkleUpdater.UI.WPF on version change | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle.UI.WPF/NetSparkle.UI.WPF.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.UI.WPF | |
INCLUDE_SYMBOLS: true | |
- name: Publish NetSparkleUpdater.UI.Avalonia on version change | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle.UI.Avalonia/NetSparkle.UI.Avalonia.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.UI.Avalonia | |
INCLUDE_SYMBOLS: true | |
- name: Publish NetSparkleUpdater.UI.WinForms.NetCore on version change | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetCore/NetSparkle.UI.WinForms.NetCore.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.UI.WinForms.NetCore | |
INCLUDE_SYMBOLS: true | |
- name: Build NetSparkle.UI.WinForms.NetFramework in Release | |
run: msbuild ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetFramework/NetSparkle.UI.WinForms.NetFramework.csproj /property:Configuration=Release /p:OutputPath=../../nuget/winformsnetframework/lib/net452 /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg | |
- name: Setup NetSparkleUpdater.UI.WinForms.NetFramework folder | |
run: | | |
del ${{ github.workspace }}/nuget\winformsnetframework\lib\net452\NetSparkle.dll | |
del ${{ github.workspace }}/nuget\winformsnetframework\lib\net452\NetSparkle.pdb | |
copy ${{ github.workspace }}/LICENSE.md ${{ github.workspace }}/nuget\winformsnetframework\LICENSE.md | |
copy ${{ github.workspace }}/src\NetSparkle\ArtWork\software-update-available.png ${{ github.workspace }}/nuget\winformsnetframework\software-update-available.png | |
- name: Publish NetSparkleUpdater.UI.WinForms.NetFramework | |
run: | | |
cd ${{ github.workspace }}/nuget/winformsnetframework | |
nuget pack NetSparkleUpdater.UI.WinForms.NetFramework.nuspec -verbosity detailed -Symbols -SymbolPackageFormat snupkg | |
nuget push *.nupkg -Source https://www.nuget.org/api/v2/package -SkipDuplicate -verbosity detailed | |
cd ${{ github.workspace }} | |
- name: Publish NetSparkleUpdater.Tools.DSAHelper | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle.Tools.DSAHelper/NetSparkle.Tools.DSAHelper.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.Tools.DSAHelper | |
INCLUDE_SYMBOLS: true | |
- name: Publish NetSparkleUpdater.Tools.AppCastGenerator | |
uses: nitz/publish-nuget@60fd3adf9d9eecc3bbf8a98738734d3061347172 | |
with: | |
PROJECT_FILE_PATH: ${{ github.workspace }}/src/NetSparkle.Tools.AppCastGenerator/NetSparkle.Tools.AppCastGenerator.csproj # Relative to repository root | |
# VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
# VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
TAG_COMMIT: false # Flag to enable / disalge git tagging | |
# TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
PACKAGE_NAME: NetSparkleUpdater.Tools.AppCastGenerator | |
INCLUDE_SYMBOLS: true |