bac97674a1
CI / test (push) Successful in 25s
CI / lint (push) Successful in 27s
CI / secrets-scan (push) Successful in 5s
CI / vuln-scan (push) Successful in 13s
CI / sast (push) Successful in 11s
CI / build-images (push) Successful in 1m47s
CI / push (push) Successful in 30s
CI / image-scan (push) Successful in 43s
Two production-only failures the CI scan didn't catch: Backend: the running container was crashing with `Cannot find module '/app/dist/main'`. nest build was emitting `dist/src/main.js` instead of `dist/main.js` because tsconfig.json had no rootDir, so tsc inferred it as `.` and preserved the src/ subdirectory in the output. Set `rootDir: "./src"` to flatten the output. Also exclude prisma/ from tsconfig.build.json so prisma/seed.ts (a ts-node script that lives outside src/) doesn't trip the rootDir check during builds. Frontend: containers came up but were marked unhealthy because the deployment's healthcheck targeted port 80 — which nginx-unprivileged can't bind. Add a HEALTHCHECK directive to the image pointing at 8080 so any orchestrator inherits a working default. Compose-level overrides still need to be updated independently. Also clean up build-artifact gitignore patterns: *.tsbuildinfo and compiled prisma/seed.* (a stale tsc invocation against the old build config emitted them locally; they shouldn't ever be committed). Bump backend and frontend to 0.1.3 — the broken 0.1.2 images are now occupying those tags in Harbor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
698 B
JSON
27 lines
698 B
JSON
{
|
|
"compilerOptions": {
|
|
"module": "nodenext",
|
|
"moduleResolution": "nodenext",
|
|
"resolvePackageJsonExports": true,
|
|
"esModuleInterop": true,
|
|
"isolatedModules": true,
|
|
"declaration": true,
|
|
"removeComments": true,
|
|
"emitDecoratorMetadata": true,
|
|
"experimentalDecorators": true,
|
|
"allowSyntheticDefaultImports": true,
|
|
"target": "ES2023",
|
|
"sourceMap": true,
|
|
"outDir": "./dist",
|
|
"rootDir": "./src",
|
|
"baseUrl": "./",
|
|
"incremental": true,
|
|
"skipLibCheck": true,
|
|
"strictNullChecks": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"noImplicitAny": true,
|
|
"strictBindCallApply": true,
|
|
"noFallthroughCasesInSwitch": true
|
|
}
|
|
}
|