116 lines
3.3 KiB
YAML
116 lines
3.3 KiB
YAML
name: .NET Tests
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
paths:
|
|
- 'global.json'
|
|
- '**.cs'
|
|
- '**.axaml'
|
|
- '**.csproj'
|
|
- '**.props'
|
|
- '**.targets'
|
|
- '**.sln'
|
|
- '**.slnx'
|
|
- 'src/.editorconfig'
|
|
- '.github/workflows/dotnet-test.yml'
|
|
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
paths:
|
|
- 'global.json'
|
|
- '**.cs'
|
|
- '**.axaml'
|
|
- '**.csproj'
|
|
- '**.props'
|
|
- '**.targets'
|
|
- '**.sln'
|
|
- '**.slnx'
|
|
- 'src/.editorconfig'
|
|
- '.github/workflows/dotnet-test.yml'
|
|
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
test-codebase:
|
|
runs-on: windows-latest
|
|
env:
|
|
NUGET_PACKAGES: ${{ github.workspace }}\.nuget\packages
|
|
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install .NET SDK
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
global-json-file: global.json
|
|
|
|
- name: Cache NuGet packages
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: ${{ env.NUGET_PACKAGES }}
|
|
key: ${{ runner.os }}-nuget-${{ hashFiles('global.json', 'src/**/*.csproj', 'src/**/*.props', 'src/**/*.targets', 'src/**/*.sln', 'src/**/*.slnx') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-nuget-
|
|
|
|
- name: Install dependencies
|
|
working-directory: src
|
|
run: dotnet restore UniGetUI.Windows.slnx
|
|
|
|
- name: Check whitespace formatting
|
|
run: dotnet format whitespace src --folder --verify-no-changes --verbosity minimal
|
|
|
|
- name: Check code style formatting (Avalonia Windows solution)
|
|
working-directory: src
|
|
run: dotnet format style UniGetUI.Windows.slnx --no-restore --verify-no-changes --verbosity minimal
|
|
|
|
- name: Build Avalonia Windows solution
|
|
working-directory: src
|
|
run: |
|
|
dotnet build-server shutdown
|
|
dotnet build UniGetUI.Windows.slnx --no-restore --verbosity minimal /p:Platform=x64 /p:UseSharedCompilation=false /m:1
|
|
|
|
- name: Run Tests
|
|
working-directory: src
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
run: dotnet test UniGetUI.Windows.slnx --no-restore --verbosity q --nologo /p:Platform=x64 /p:UseSharedCompilation=false /m:1
|
|
|
|
- name: Report full-trim publish warnings
|
|
working-directory: src
|
|
shell: pwsh
|
|
continue-on-error: true
|
|
run: |
|
|
dotnet build-server shutdown
|
|
dotnet publish UniGetUI.Avalonia/UniGetUI.Avalonia.csproj `
|
|
--no-restore `
|
|
--configuration Release `
|
|
--runtime win-x64 `
|
|
--self-contained true `
|
|
--output "${{ runner.temp }}\unigetui-full-trim-publish" `
|
|
/p:Platform=x64 `
|
|
/p:TrimMode=full `
|
|
/p:TrimmerSingleWarn=false `
|
|
/p:UseSharedCompilation=false `
|
|
--verbosity minimal
|
|
|
|
- name: Report NativeAOT publish warnings
|
|
working-directory: src
|
|
shell: pwsh
|
|
run: |
|
|
dotnet build-server shutdown
|
|
dotnet publish UniGetUI.Avalonia/UniGetUI.Avalonia.csproj `
|
|
--no-restore `
|
|
--configuration Release `
|
|
--runtime win-x64 `
|
|
--self-contained true `
|
|
--output "${{ runner.temp }}\unigetui-nativeaot-publish" `
|
|
/m:1 `
|
|
/p:Platform=x64 `
|
|
/p:PublishProfile=Win-x64-NativeAot `
|
|
/p:TrimmerSingleWarn=false `
|
|
/p:UseSharedCompilation=false `
|
|
--verbosity minimal
|