diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 4e3a624..2aff002 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -23,6 +23,16 @@ jobs: - uses: https://github.com/actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' + # Cache the NuGet package store so each .NET job restores from disk, not the network. There are + # no lock files (so setup-dotnet's built-in cache doesn't apply); key on the project files. @v3 + # avoids the GHES guard that breaks @v4 on Gitea (gitea-actions-gotchas.md); cache is best-effort + # — a miss just restores from the network. See issue #73. + - uses: https://github.com/actions/cache@v3 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} + restore-keys: | + nuget-${{ runner.os }}- - run: make lint build: @@ -32,6 +42,12 @@ jobs: - uses: https://github.com/actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' + - uses: https://github.com/actions/cache@v3 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} + restore-keys: | + nuget-${{ runner.os }}- - run: make build unit: @@ -41,6 +57,12 @@ jobs: - uses: https://github.com/actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' + - uses: https://github.com/actions/cache@v3 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} + restore-keys: | + nuget-${{ runner.os }}- - run: make unit # Frontend (Nx/Angular) lane: install with pnpm, then Nx lint + test + build. @@ -64,6 +86,12 @@ jobs: - uses: https://github.com/actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' + - uses: https://github.com/actions/cache@v3 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} + restore-keys: | + nuget-${{ runner.os }}- - run: make mutation # Publish the Stryker HTML reports. `if: always()` uploads them even when the # ratchet fails — that is exactly when you want to inspect the survivors.