Pipeline Fazları
Fazlar ci/scripts/run-ci.mjs içindeki PHASES dizisinde tanımlıdır. Bir faz
kırmızı olsa bile kalan fazlar çalışır — rapor eksiksiz olsun diye.
| # | Faz | Komut | Konum | CI'ı durdurur mu |
|---|---|---|---|---|
| 1 | Environment / dependencies | npm ci |
her iki paket | Evet |
| 2 | Backend Typecheck | npm run typecheck |
backend | Evet |
| 3 | Backend Unit Tests | npx tsx tests/run.ts unit |
backend | Evet |
| 4 | Backend Integration Tests | npx tsx tests/run.ts integration |
backend | Evet |
| 5 | Node-RED Migrated API Regression | npm run nodered:test |
backend | Evet |
| 6 | Swagger / OpenAPI | npm run swagger:test |
backend | Evet |
| 7 | Audit / Platform Logs | npm run logs:test |
backend | Evet |
| 8 | Reminder Mail | tests/run-file.ts .../reminder-mail.test.ts |
backend | Evet |
| 10a | Frontend Typecheck | npm run typecheck |
dashboard | Evet |
| 10b | Frontend Test Typecheck | npm run typecheck:test |
dashboard | Evet |
| 11 | Frontend Unit/Component/Service | jest --ci --maxWorkers=2 |
dashboard | Evet |
| 12 | Frontend ESLint | npm run lint |
dashboard | Hayır (uyarı) |
| 13 | Backend Production Build | npm run build |
backend | Evet |
| 14 | Frontend Production Build | npm run build |
dashboard | Evet |
| 15 | Security Scan | dahili (harici araç yok) | repo | Evet |
| 16 | Quality Report Generation | generate-ci-report.mjs |
repo | — |
Faz 8 ve 9 neden ayrı?
Reminder Mail, Faz 4'ün (integration) içinde de çalışır. Ayrıca tek dosya olarak çalıştırılmalarının nedeni, raporda kendi başlarına sayılabilir olmalarıdır — bu iki alan ürünün en yeni ve en kırılgan parçalarıdır. Aynı test iki kez çalıştığı için toplam süre birkaç saniye artar; karşılığında regresyon hangi modülde olduğu doğrudan görünür.
Çıktı ayrıştırma
| Kaynak | Beklenen satır |
|---|---|
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) |
Ayrıştırıcı satırı bulamazsa counts üretilmez ve faz yalnızca exit koduna
göre değerlendirilir — uydurma sayı raporlanmaz.
Zaman aşımı
Faz başına varsayılan üst sınır 30 dakikadır
(IQV_CI_PHASE_TIMEOUT_MS ile değiştirilebilir). Aşan faz SIGKILL alır ve
exit code 124 ile kaydedilir; pipeline durmaz, kalan fazlar çalışır.