Skip to content

Pipeline Phases

Phases are declared in the PHASES array inside ci/scripts/run-ci.mjs. If one phase turns red the remaining phases still run, so the report stays complete.

# Phase Command Location Blocks CI
1 Environment / dependencies npm ci both packages Yes
2 Backend Typecheck npm run typecheck backend Yes
3 Backend Unit Tests npx tsx tests/run.ts unit backend Yes
4 Backend Integration Tests npx tsx tests/run.ts integration backend Yes
5 Node-RED Migrated API Regression npm run nodered:test backend Yes
6 Swagger / OpenAPI npm run swagger:test backend Yes
7 Audit / Platform Logs npm run logs:test backend Yes
8 Reminder Mail tests/run-file.ts .../reminder-mail.test.ts backend Yes
10a Frontend Typecheck npm run typecheck dashboard Yes
10b Frontend Test Typecheck npm run typecheck:test dashboard Yes
11 Frontend Unit/Component/Service jest --ci --maxWorkers=2 dashboard Yes
12 Frontend ESLint npm run lint dashboard No (warning)
13 Backend Production Build npm run build backend Yes
14 Frontend Production Build npm run build dashboard Yes
15 Security Scan internal (no external tool) repo Yes
16 Quality Report Generation generate-ci-report.mjs repo —

Why are phases 8 and 9 separate?

Reminder Mail also runs inside phase 4. They are executed again as single files so they are independently countable in the report — these are the newest and most fragile parts of the product. The duplicate run costs a few seconds; in return a regression is attributed to the right module.

Output parsing

Source Expected line
tests/run.ts, scripts/*.ts SONUC: <n> basarili, <n> basarisiz[, <n> atlandi]
tests/run-file.ts __IQV_SUMMARY__{"passed":..,"failed":..,"skipped":..}
Jest Tests: <n> failed, <n> passed, <n> total
ESLint ✖ <n> problems (<n> errors, <n> warnings)

If the parser cannot find the line, counts is not produced and the phase is judged by exit code only — no invented numbers are reported.

Timeouts

The default per-phase limit is 30 minutes (IQV_CI_PHASE_TIMEOUT_MS). An exceeding phase receives SIGKILL and is recorded with exit code 124; the pipeline does not stop and remaining phases still run.