diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index c98345e..938e66e 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -12,7 +12,18 @@ on: jobs: build: - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: + - gh: ubuntu-22.04 + cs: linux-x64 + - gh: windows-latest + cs: win-x64 + - gh: macos-latest + cs: osx-x64 + + runs-on: ${{ matrix.os.gh }} steps: - uses: actions/checkout@v4 @@ -32,3 +43,23 @@ jobs: - name: Test run: dotnet test --verbosity normal + + - name: Publish CLI + run: dotnet publish SlimeVROta -c Release -r ${{ matrix.os.cs }} -o builds/cli-${{ matrix.os.cs }} -p:PublishAot=true + + - name: Upload a build artifact (CLI) + uses: actions/upload-artifact@v4 + with: + name: SlimeVR-OTA-${{ matrix.os.cs }} + # A file, directory or wildcard pattern that describes what to upload + path: builds/cli-${{ matrix.os.cs }} + + - name: Publish GUI + run: dotnet publish SlimeVROta.Gui -c Release -r ${{ matrix.os.cs }} -o builds/gui-${{ matrix.os.cs }} + + - name: Upload a build artifact (GUI) + uses: actions/upload-artifact@v4 + with: + name: SlimeVR-OTA-GUI-${{ matrix.os.cs }} + # A file, directory or wildcard pattern that describes what to upload + path: builds/gui-${{ matrix.os.cs }} diff --git a/SlimeVrOta.Gui/SlimeVrOta.Gui.csproj b/SlimeVrOta.Gui/SlimeVrOta.Gui.csproj index d2f1201..a6fb8ed 100644 --- a/SlimeVrOta.Gui/SlimeVrOta.Gui.csproj +++ b/SlimeVrOta.Gui/SlimeVrOta.Gui.csproj @@ -1,5 +1,5 @@ - + WinExe net8.0 @@ -9,6 +9,10 @@ true SlimeVR-OTA-GUI Assets\icon.ico + true + true + true + true @@ -35,5 +39,5 @@ - + diff --git a/SlimeVrOta/SlimeVrOta.csproj b/SlimeVrOta/SlimeVrOta.csproj index 593e0ac..f439eec 100644 --- a/SlimeVrOta/SlimeVrOta.csproj +++ b/SlimeVrOta/SlimeVrOta.csproj @@ -7,6 +7,10 @@ enable SlimeVR-OTA icon.ico + true + true + true + true