Skip to content

ci: add .NET workload installation step #93

ci: add .NET workload installation step

ci: add .NET workload installation step #93

Workflow file for this run

name: Trion CI
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET 9
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
- name: Install .NET workloads
run: dotnet workload install aspire wasm-tools
- name: Restore
run: dotnet restore
- name: Build
run: dotnet build -c Release --no-restore --warnaserror
- name: Test
run: dotnet test -c Release --no-build --logger trx --collect:"XPlat Code Coverage"
- name: Publish desktop (Windows)
if: matrix.os == 'windows-latest'
run: dotnet publish src/Trion.Desktop/Trion.Desktop.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o artifacts/desktop
- name: Publish desktop (Linux)
if: matrix.os == 'ubuntu-latest'
run: dotnet publish src/Trion.Desktop/Trion.Desktop.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -o artifacts/desktop
- name: Publish web (portable)
run: dotnet publish src/Trion.Web/Trion.Web.csproj -c Release -o artifacts/web
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}
path: '**/*.trx'
- name: Upload coverage
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: '**/coverage.cobertura.xml'
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: Trion-Build-${{ matrix.os }}
path: artifacts/