name: Build & Test permissions: read-all on: push: branches: [ "main" ] pull_request: branches: [ "main" ] types: [opened, synchronize] workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: 🔎 Checkout files uses: actions/checkout@v5 - name: 💎 Cache NuGet packages uses: actions/cache@v4 id: cache-nuget with: path: | ~/.nuget/packages ~/.local/share/NuGet/Cache-* key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }} restore-keys: | ${{ runner.os }}-nuget- - name: 🎽 Setup .NET uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: 💫 Restore dependencies run: dotnet restore - name: 🔥 Build run: dotnet build --no-restore -o "${{ vars.ARTIFACT_DIR }}/output" - name: 📈 Test run: dotnet test --verbosity normal