Skip to content
PublikovánoAktualizováno: 21. července 2026 v 00:00 Vytvořeno v TechFides

CI/CD

Automatizace pipeline — co se spouští při každé změně, jak se nasazuje a jak se řídí release. Rozhoduje o tom, jak rychle a bezpečně se změny dostávají do produkce.

📊 Skóre

StavPočet
🟢 OK5
🟠 Částečně3
🔴 Špatně1

Celkově: jádro pipeline je silné — lint, testy, licence, nasazení i notifikace selhání běží automaticky a pipeline se generuje per-aplikace. Slabší je bezpečnostní automatizace (skenování zranitelností jen naplánovaně) a verzování/release notes (manuální); zcela chybí automatické aktualizace závislostí.

🔍 Co jsme hodnotili

#PoložkaStav
18Lint + statická analýza na MR + prahy kvality🟢
19Automatizované testy + coverage na MR🟢
20Audit licencí závislostí🟢
24Automatizovaný deployment / release management🟢
26Notifikace selhání pipeline do komunikace🟢
21Report zranitelností závislostí (per MR)🟠
23Kontrola nepoužívaného kódu (knip/depcheck)🟠
25Automatizované verzování + release notes🟠
22Automatické MR s aktualizacemi závislostí🔴

📌 Klíčové nálezy

🟢 Generovaná pipeline per aplikace

Kořenový .gitlab-ci.yml funguje jako parent pipeline, který přes trigger:include spouští child pipeline pro každou aplikaci (.gitlab/ci/tf-*.yml) — ty jsou generované vlastním pipeline-generátorem. Na merge requestu běží lint (ESLint, type-check, Prettier), testy s coverage reportem do MR, kontrola licencí a Sonar. Lint/type-check/prettier build blokují.

🟢 Automatizované nasazení

Deployment je plně automatizovaný přes kubectl set image: push do develop nasadí na staging, git tag release/<app>/* nasadí na produkci. Release je řízen konvencí tagů.

🟢 Notifikace selhání pipeline do Slacku

Selhání pipeline na develop posílá notifikaci do Slacku přes nativní GitLab → Slack integraci. Nastavení je na straně GitLab serveru (integrace projektu), proto není v repozitáři — tým se o spadlé pipeline na hlavní větvi dozví automaticky.

🟠 Skenování zranitelností jen naplánovaně

pnpm audit (--audit-level=high) existuje jako job report:audit, ale běží jen opt-in ve scheduled pipeline na develop, ne u každého merge requestu. V pipeline navíc není žádná šablona GitLab Dependency Scanning / SAST / Secret Detection. Nové zranitelné závislosti se tak zachytí až se zpožděním.

🟠 Kontrola mrtvého kódu jen částečná

Konzistenci generovaných artefaktů hlídají „drift" gaty (packages:dist-drift, api:spec-drift), ale chybí knip / depcheck / ts-prune — nepoužívané závislosti, soubory a exporty se nehlídají.

🟠 Manuální verzování a release notes

Není semantic-release ani changesets — verzování je manuální přes git tagy. Existuje generátor changelogu z ticketů, ale spouští se ručně a není napojen na CI. Release proces tak stojí na disciplíně, ne na automatizaci.

🔴 Bez automatických aktualizací závislostí

V projektu není Renovate ani Dependabot — aktualizace závislostí se neřeší automatickými merge requesty. Závislosti tak snáze zastarávají.

✅ Doporučení

PrioritaDoporučení
VysokáZapojit skenování zranitelností do každého MR (GitLab Dependency Scanning nebo pnpm audit v MR pipeline).
StředníZavést Renovate/Dependabot pro automatické aktualizace závislostí.
StředníAutomatizovat verzování a release notes (semantic-release) a napojit generátor changelogu na CI.
NízkáRozšířit Slack notifikace i na produkční deploy (nejen develop).
NízkáDoplnit knip pro detekci mrtvého kódu.