Remove ShowsUIOnMainThread, refactor UI coordination #738
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: 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/[email protected] | |
- uses: nuget/setup-nuget@v2 | |
with: | |
nuget-api-key: ${{secrets.NUGET_API_KEY}} | |
nuget-version: '5.x' | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
if: matrix.os == 'windows-latest' | |
- name: Setup .NET 6.0, 7.0, 8.0 for tests | |
uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.x | |
7.0.x | |
8.0.x | |
- name: Run NetSparkle.Tests in .NET 4.6.2 | |
run: dotnet test -f net462 ${{ github.workspace }}/src/NetSparkle.Tests/NetSparkle.Tests.csproj | |
if: matrix.os == 'windows-latest' | |
- 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 | |
build: | |
name: Build all packages as smoke test | |
runs-on: windows-latest | |
needs: test | |
steps: | |
- uses: actions/[email protected] | |
- uses: nuget/setup-nuget@v2 | |
with: | |
nuget-api-key: ${{secrets.NUGET_API_KEY}} | |
nuget-version: '5.x' | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
- name: Setup .NET 6.0, 7.0, 8.0 | |
uses: actions/[email protected] | |
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 | |
msbuild ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetFramework/NetSparkle.UI.WinForms.NetFramework.csproj /property:Configuration=Release /t:Clean /p:OutputPath=../../nuget/winformsnetframework/lib/net462 | |
- 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: Build NetSparkle.UI.WinForms.NetFramework in Release | |
run: | | |
msbuild ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetFramework/NetSparkle.UI.WinForms.NetFramework.csproj /property:Configuration=Release /t:Restore /p:OutputPath=../../nuget/winformsnetframework/lib/net462 /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg | |
msbuild ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetFramework/NetSparkle.UI.WinForms.NetFramework.csproj /property:Configuration=Release /p:OutputPath=../../nuget/winformsnetframework/lib/net462 /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg | |
publish: | |
name: Build and publish all packages to NuGet | |
runs-on: windows-latest | |
needs: build | |
if: github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/avalonia-preview' || github.ref == 'refs/heads/versions/2.x' | |
steps: | |
- uses: actions/[email protected] | |
- uses: nuget/setup-nuget@v2 | |
with: | |
nuget-api-key: ${{secrets.NUGET_API_KEY}} | |
nuget-version: '5.x' | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
- name: Setup .NET 6.0, 7.0, 8.0 | |
uses: actions/[email protected] | |
with: | |
dotnet-version: | | |
6.0.x | |
7.0.x | |
8.0.x | |
- 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 /t:Restore /p:OutputPath=../../nuget/winformsnetframework/lib/net462 /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg | |
msbuild ${{ github.workspace }}/src/NetSparkle.UI.WinForms.NetFramework/NetSparkle.UI.WinForms.NetFramework.csproj /property:Configuration=Release /p:OutputPath=../../nuget/winformsnetframework/lib/net462 /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg | |
- name: Setup NetSparkleUpdater.UI.WinForms.NetFramework folder | |
run: | | |
del ${{ github.workspace }}/nuget\winformsnetframework\lib\net462\NetSparkle.dll | |
del ${{ github.workspace }}/nuget\winformsnetframework\lib\net462\NetSparkle.pdb | |
copy ${{ github.workspace }}/LICENSE.md ${{ github.workspace }}/nuget\winformsnetframework\LICENSE.md | |
copy ${{ github.workspace }}/README.md ${{ github.workspace }}/nuget\winformsnetframework\README.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 |