Proces raportowania¶
Scheduler cyklicznie wyzwala centralny pipeline, który przez GitLab API zbiera artefakty conformance.json ze wszystkich projektów grupy i publikuje zagregowany raport na portalu GitLab Pages.
flowchart LR
A(["① Scheduler\ncron"])
A -->|wyzwala pipeline| B(["② Centralny\nCI Pipeline"])
B -->|dashboard:generate| C["dashboard.py\nGitLab API"]
C -->|pobiera conformance.json\nz każdego projektu| D["Zagregowane\nwyniki"]
D -->|publikacja| E(["③ Portal\nGitLab Pages"])
style A fill:#c62828,color:#fff,stroke:#c62828
style B fill:#c62828,color:#fff,stroke:#c62828
style C fill:#c62828,color:#fff,stroke:#c62828
style D fill:#c62828,color:#fff,stroke:#c62828
style E fill:#c62828,color:#fff,stroke:#c62828
linkStyle 0 stroke:#c62828,stroke-width:2px
linkStyle 1 stroke:#c62828,stroke-width:2px
linkStyle 2 stroke:#c62828,stroke-width:2px
linkStyle 3 stroke:#c62828,stroke-width:2px
① Wyzwolenie przez scheduler¶
-
Pipeline raportowania jest uruchamiany przez harmonogram (cron), niezależnie od aktywności zespołów. Domyślnie raz na dobę — zapewnia aktualny przekrój stanu dyscypliny dla całej organizacji.
-
Scheduler nie zależy od żadnego push ani MR. Raport odzwierciedla stan artefaktów z ostatnich uruchomień pipeline'ów w każdym projekcie.
② Zbieranie danych przez dashboard.py¶
-
dashboard.pyprzechodzi przez wszystkie projekty grupy GitLab używając GitLab API (z paginacją przezX-Next-Page). Pomija projekty zarchiwizowane. -
Dla każdego projektu pobiera artefakt
conformance.jsonz domyślnej gałęzi (default_branch). Jeśli projekt nie ma artefaktu — jest widoczny na dashboardzie jako brak pomiaru. -
Z każdego
conformance.jsonodczytuje:
| Pole | Znaczenie |
|---|---|
app |
nazwa projektu |
app_version |
tag lub SHA commita z momentu pomiaru |
discipline |
pinowana wersja dyscypliny |
checked |
data ostatniego pomiaru |
results |
wynik każdej normy (pass / fail) |
exceptions |
aktywne waivery z właścicielem i datą wygaśnięcia |
③ Publikacja raportu¶
-
Wyniki są renderowane jako strona Markdown i publikowane na GitLab Pages jako część portalu zasady-dyscypliny.
-
Raport zawiera kolumny: Projekt, Wersja aplikacji, Wersja dyscypliny, Data pomiaru, Wynik, Niezgodności, Odstępstwa.
-
Niezgodności i odstępstwa są listowane z linkami do normy i do artefaktu
conformance.json, żeby inżynier mógł natychmiast zobaczyć co i dlaczego nie przeszło. -
Trzy poziomy odbiorców korzystają z tego samego zbioru danych:
| Odbiorca | Widok |
|---|---|
| Inżynier | check — co konkretnie nie przeszło i jak naprawić |
| Tech Lead | scorecard — stan projektu względem wszystkich norm |
| Zarząd | portfel + trend — agregat grupy i kierunek w czasie |
Warning
Raport jest widokiem artefaktów, nie źródłem prawdy.
- Artefakt
conformance.jsonjest produkowany przez pipeline aplikacji. - Dashboard tylko zbiera i prezentuje — nie uruchamia żadnych checków.
Brak artefaktu oznacza brak pomiaru, nie zgodność.