name: CI on: push: branches: - master pull_request: jobs: build-and-test: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 - name: Install frontend tooling run: npm install - name: Lint frontend run: npm run lint - name: Check frontend formatting run: npm run format:check - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 10.0.x - name: Restore run: dotnet restore GameList.sln - name: Build (warnings as errors) run: dotnet build GameList.sln --no-restore -warnaserror - name: Test run: dotnet test GameList.Tests/GameList.Tests.csproj --no-build --verbosity normal --collect:"XPlat Code Coverage" - name: Enforce coverage thresholds run: pwsh ./scripts/check-coverage.ps1 -MinLineRate 0.90 -MinBranchRate 0.70