Skip to content

v4.0 dotnet

v4.0 dotnet #240

Workflow file for this run

name: .NET
on:
workflow_dispatch:
push:
branches: [ master ]
paths:
- 'binding/dotnet/**'
- '!binding/dotnet/README.md'
- 'lib/common/**'
- 'lib/linux/**'
- 'lib/mac/**'
- 'lib/raspberry-pi/**'
- 'lib/windows/**'
- 'resources/.test/**'
- 'resources/audio_samples/**'
- 'resources/contexts*/linux/**'
- 'resources/contexts*/mac/**'
- 'resources/contexts*/raspberry-pi/**'
- 'resources/contexts*/windows/**'
- '.github/workflows/dotnet.yml'
pull_request:
branches: [ master, 'v[0-9]+.[0-9]+' ]
paths:
- 'binding/dotnet/**'
- '!binding/dotnet/README.md'
- 'lib/common/**'
- 'lib/linux/**'
- 'lib/mac/**'
- 'lib/raspberry-pi/**'
- 'lib/windows/**'
- 'resources/.test/**'
- 'resources/audio_samples/**'
- 'resources/contexts*/linux/**'
- 'resources/contexts*/mac/**'
- 'resources/contexts*/raspberry-pi/**'
- 'resources/contexts*/windows/**'
- '.github/workflows/dotnet.yml'
defaults:
run:
working-directory: binding/dotnet
jobs:
build-github-hosted:
runs-on: ${{ matrix.os }}
env:
ACCESS_KEY: ${{secrets.PV_VALID_ACCESS_KEY}}
strategy:
matrix:
device: [cpu, cpu:1]
os: [ubuntu-latest, macos-latest, macos-15-intel, windows-latest]
dotnet-version: [2.1.x, 3.1.x, 6.0.x, 8.0.x, 10.0.x]
include:
- dotnet-version: 2.1.x
test-framework: netcoreapp2.1
- dotnet-version: 3.1.x
test-framework: netcoreapp3.1
- dotnet-version: 6.0.x
test-framework: net6.0
- dotnet-version: 8.0.x
test-framework: net8.0
- dotnet-version: 10.0.x
test-framework: net10.0
exclude:
- os: ubuntu-latest
dotnet-version: 2.1.x
- os: ubuntu-latest
dotnet-version: 3.1.x
- os: macos-latest
dotnet-version: 2.1.x
- os: macos-latest
dotnet-version: 3.1.x
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Build binding
run: dotnet build Rhino/Rhino.csproj
- name: Set test framework version (linux)
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sed -i 's/net6.0/${{matrix.test-framework}}/g' RhinoTest/RhinoTest.csproj
- name: Set test framework version (macos)
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'macos-15-intel' }}
run: sed -i '.bak' 's/net6.0/${{matrix.test-framework}}/g' RhinoTest/RhinoTest.csproj
- name: Set test framework version (windows)
if: ${{ matrix.os == 'windows-latest' }}
run: (Get-Content -Path "RhinoTest/RhinoTest.csproj") -replace "net6.0", "${{matrix.test-framework}}" | Set-Content -Path "RhinoTest/RhinoTest.csproj"
- name: Test
run: dotnet test -v n
env:
DEVICE: ${{ matrix.device }}
build-self-hosted:
runs-on: ${{ matrix.machine }}
env:
ACCESS_KEY: ${{secrets.PV_VALID_ACCESS_KEY}}
strategy:
matrix:
machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, pv-windows-arm64]
device: [best]
steps:
- uses: actions/checkout@v3
- name: Build binding
run: dotnet build Rhino/Rhino.csproj
- name: Test
run: dotnet test -v n
env:
DEVICE: ${{ matrix.device }}
DOTNET_ROLL_FORWARD: LatestMajor