53 lines
1.9 KiB
YAML
53 lines
1.9 KiB
YAML
name: Build and test
|
|
|
|
on:
|
|
push:
|
|
paths: ['src/**', 'tests/**', 'clients/**', 'native/**', 'proto/**', 'assets/**', 'scripts/**', '*.slnx', '*.props', '*.targets', 'global.json', 'Dockerfile', '.github/workflows/dotnet.yml']
|
|
pull_request:
|
|
paths: ['src/**', 'tests/**', 'clients/**', 'native/**', 'proto/**', 'assets/**', 'scripts/**', '*.slnx', '*.props', '*.targets', 'global.json', 'Dockerfile', '.github/workflows/dotnet.yml']
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-latest, ubuntu-24.04, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-dotnet@v4
|
|
with:
|
|
global-json-file: global.json
|
|
cache: true
|
|
cache-dependency-path: '**/packages.lock.json'
|
|
- name: Build and stage native codec/DSP
|
|
shell: pwsh
|
|
run: ./scripts/build-native.ps1
|
|
- run: dotnet restore VoiceCat.slnx --locked-mode
|
|
- run: dotnet build VoiceCat.slnx -c Release --no-restore
|
|
- run: dotnet test VoiceCat.slnx -c Release --no-build
|
|
- shell: pwsh
|
|
run: ./scripts/check-licenses.ps1
|
|
|
|
apple-client:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-dotnet@v4
|
|
with:
|
|
global-json-file: global.json
|
|
cache: true
|
|
cache-dependency-path: '**/packages.lock.json'
|
|
- name: Install Apple workloads
|
|
run: dotnet workload install macos ios --version 10.0.401
|
|
- name: Build and stage native codec/DSP
|
|
shell: pwsh
|
|
run: ./scripts/build-native.ps1
|
|
- name: Build and stage static iOS codec/DSP
|
|
run: ./scripts/build-native-ios.sh
|
|
- name: Restore managed Apple clients
|
|
run: dotnet restore clients/apple/VoiceCat.Apple.slnx
|
|
- name: Build managed AppKit and UIKit clients
|
|
run: dotnet build clients/apple/VoiceCat.Apple.slnx -c Debug --no-restore
|