name: Build on: push: tags-ignore: - '*' pull_request: workflow_dispatch: env: DOTNET_VERSION: '10.0.x' Solution_Name: LanMountainDesktop.slnx jobs: build-windows: runs-on: windows-latest name: Build_Windows_${{ matrix.configuration }} strategy: matrix: configuration: [ Debug, Release ] fail-fast: false steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Restore run: dotnet restore ${{ env.Solution_Name }} - name: Build run: dotnet build ${{ env.Solution_Name }} --no-restore -c ${{ matrix.configuration }} -v minimal - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: build-windows-${{ matrix.configuration }} path: | LanMountainDesktop/bin/${{ matrix.configuration }}/ retention-days: 7 build-linux: runs-on: ubuntu-latest name: Build_Linux steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ libfontconfig1 libfreetype6 \ libx11-6 libxrandr2 libxinerama1 \ libxi6 libxcursor1 libxext6 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Restore run: dotnet restore ${{ env.Solution_Name }} - name: Build run: dotnet build ${{ env.Solution_Name }} --no-restore -c Release -v minimal - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: build-linux path: | LanMountainDesktop/bin/Release/ retention-days: 7 build-macos: runs-on: macos-latest name: Build_macOS steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Restore run: dotnet restore ${{ env.Solution_Name }} - name: Build run: dotnet build ${{ env.Solution_Name }} --no-restore -c Release -v minimal - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: build-macos path: | LanMountainDesktop/bin/Release/ retention-days: 7