diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 11b63b37..4eb0cd2b 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -26,23 +26,25 @@ jobs: - name: Typecheck, lint, and test run: | set -e - echo "--- CI checks starten direct op de host ---" + echo "--- CI checks starten met CPU-limieten ---" node scripts/check-node-toolchain.mjs + # OPLOSSING: Voorkom dat Node de server overbelast (max 1 thread / beperkt geheugen) + export UV_THREADPOOL_SIZE=1 + export NODE_OPTIONS="--max-old-space-size=1536" + export SKIP_ENV_VALIDATION=1 export NODE_ENV=test - - # Nu we op de host draaien, werkt localhost en 127.0.0.1 direct! export DATABASE_URL="mysql://test:test@localhost:3306/test?charset=utf8mb4" export REDIS_URL="redis://127.0.0.1:6379?connect_timeout=2" - export AUTH_SECRET="ci-test-secret-key-that-is-long-enough" export BCRYPT_ROUNDS=4 - pnpm install --frozen-lockfile - pnpm biome:lint + # Dwing pnpm en tools om single-threaded te draaien + pnpm install --frozen-lockfile --jobs 1 + pnpm biome:lint --workers 1 pnpm typecheck - pnpm test + pnpm test --maxWorkers=1 pnpm knip echo "--- CI checks passed ---" @@ -62,7 +64,8 @@ jobs: set -e echo "--- Start Docker Build & Deploy ---" - docker build -t epicnext-cms:latest . + # Bouw ook de Docker container op slechts 1 CPU kern om lag te voorkomen + docker build --build-arg NODE_OPTIONS="--max-old-space-size=1536" -t epicnext-cms:latest . docker stop epicnext-cms-app 2>/dev/null || true docker rm epicnext-cms-app 2>/dev/null || true