Skip to content

Bump the analyzers group with 3 updates #549

Bump the analyzers group with 3 updates

Bump the analyzers group with 3 updates #549

Workflow file for this run

name: Rhino Tests
on:
push:
branches: [main]
paths:
- 'libs/rhino/**'
- 'test/rhino/**'
- '.github/workflows/rhino-tests.yml'
pull_request:
branches: [main]
paths:
- 'libs/rhino/**'
- 'test/rhino/**'
- '.github/workflows/rhino-tests.yml'
workflow_dispatch:
inputs:
enable_diagnostics:
description: 'Enable CoreCLR trace logging for debugging'
type: boolean
default: false
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-rhino:
name: Rhino Headless Tests
runs-on: windows-latest
timeout-minutes: 20
permissions:
contents: read
checks: write
env:
RHINO_TOKEN: ${{ secrets.RHINO_TOKEN }}
RHINO_EMAIL: ${{ secrets.RHINO_EMAIL }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup .NET 8
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Install Rhino
uses: mcneel/setup-rhino3d@v2
with:
email-address: ${{ secrets.RHINO_EMAIL }}
release-version: latest
- name: Capture Rhino Version
shell: pwsh
run: |
$exe = 'C:\Program Files\Rhino 8\System\Rhino.exe'
$dll = 'C:\Program Files\Rhino 8\System\RhinoCommon.dll'
if (Test-Path $exe) {
$ver = (Get-Item $exe).VersionInfo.ProductVersion
Write-Host "Rhino.exe version: $ver"
}
if (Test-Path $dll) {
$dllVer = (Get-Item $dll).VersionInfo.ProductVersion
Write-Host "RhinoCommon.dll version: $dllVer"
}
- name: Restore Dependencies
run: dotnet restore test/rhino/Arsenal.Rhino.Tests.csproj
- name: Build Rhino Tests
run: dotnet build test/rhino/Arsenal.Rhino.Tests.csproj --configuration Release --no-restore
- name: Run Rhino Tests
env:
COREHOST_TRACE: ${{ inputs.enable_diagnostics && '1' || '0' }}
COREHOST_TRACEFILE: ${{ inputs.enable_diagnostics && 'D:\a\corehost_trace.log' || '' }}
shell: pwsh
run: |
$diagArgs = @()
if ('${{ inputs.enable_diagnostics }}' -eq 'true') {
$diagArgs += '--diag:D:\a\vstest_diag.log'
}
dotnet test test/rhino/Arsenal.Rhino.Tests.csproj `
--configuration Release `
--framework net8.0-windows `
--logger "trx;LogFileName=Arsenal.Rhino.Tests.trx" `
--settings test/rhino/.runsettings `
@diagArgs
if ('${{ inputs.enable_diagnostics }}' -eq 'true') {
if (Test-Path D:\a\corehost_trace.log) { Get-Content D:\a\corehost_trace.log -Tail 200 }
if (Test-Path D:\a\vstest_diag.log) { Get-Content D:\a\vstest_diag.log -Tail 100 }
}
- name: Publish Test Results
if: always()
uses: dorny/test-reporter@v2
with:
name: 'Rhino Tests'
path: '**/TestResults/**/*.trx'
reporter: 'dotnet-trx'
fail-on-error: true
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v5
with:
name: rhino-test-results
path: |
**/TestResults/**/*.trx
**/TestResults/**/*.xml
retention-days: 7
- name: Upload Diagnostic Logs
if: inputs.enable_diagnostics && always()
uses: actions/upload-artifact@v5
with:
name: diagnostic-logs
path: |
D:\a\corehost_trace.log
D:\a\vstest_diag.log
retention-days: 7
- name: Generate Summary
if: always()
shell: pwsh
run: |
$status = if ('${{ job.status }}' -eq 'success') { '[PASS]' } else { '[FAIL]' }
@"
## $status Rhino Headless Tests
| Property | Value |
|----------|-------|
| Framework | NUnit 3.14.0 + Rhino.Testing v8.0.28-beta |
| Target | .NET 8.0-windows |
| Platform | Windows with RhinoCommon |
| Diagnostics | ${{ inputs.enable_diagnostics || 'false' }} |
"@ >> $env:GITHUB_STEP_SUMMARY