diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 6bbc2e0..fc874de 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -1,6 +1,11 @@ name: CI - Build & Test run-name: 🔍 CI ${{ gitea.ref_name }} by @${{ gitea.actor }} +# ── Concurrency: cancel in-progress CI when new push arrives ── +concurrency: + group: ci-${{ gitea.ref }} + cancel-in-progress: true + on: push: branches: [main] @@ -21,6 +26,15 @@ jobs: with: dotnet-version: '10.0.x' + # Cache NuGet packages across runs (keyed on .csproj files) + - name: Cache NuGet packages + uses: actions/cache@v4 + with: + path: ~/.nuget/packages + key: nuget-${{ runner.os }}-${{ hashFiles('backend/*.csproj', 'backend-tests/*.csproj') }} + restore-keys: | + nuget-${{ runner.os }}- + - name: Restore run: dotnet restore backend/Nexus.Api.csproj @@ -49,6 +63,17 @@ jobs: corepack enable corepack prepare pnpm@latest --activate + # Cache pnpm store + node_modules (keyed on lockfile) + - name: Cache pnpm store + uses: actions/cache@v4 + with: + path: | + frontend/node_modules + ~/.pnpm-store + key: pnpm-${{ runner.os }}-${{ hashFiles('frontend/pnpm-lock.yaml') }} + restore-keys: | + pnpm-${{ runner.os }}- + - name: Install dependencies run: pnpm install --no-frozen-lockfile working-directory: frontend