Vse novice

Infrastruktura

Register tovarne: kaj ima pripeto vsak produkt in ali se to ujema z repozitorijem

· Toolkit · 2 min branja

Terminal: preverjanje registra (skrajšan izpis) javi DRIFT za pripeto različico gradnika Keycloak v Reputu in Leadgenerju in konča z izhodno kodo 1.

Produkt ima naše gradnike pripete v svojem repozitoriju: različico toolkita v Directory.Build.props, gradnik Keycloak v Dockerfilu, gradnik za oblikovni sistem pa v frontend/package.json. Do 11. oktobra ni bilo nikjer zapisano, kateri produkt uporablja katero različico in ali je skupna sprememba že prišla v produkcijo.

En zapis, ki ga preverjamo

Register produktov factory/products.toml smo dodali 11. oktobra 2026. Za vsak produkt navaja fazo, lastnika, integracijsko in produkcijsko vejo, različice v kits.nuget, kits.keycloak in kits.design_system, za produkt v produkciji pa še opravilo za namestitev in potrditev (commit), ki je nameščena v produkciji.

Skript factory/check_registry.py ta zapis primerja z repozitorijem vsakega produkta na origin/<branch>, nikoli z delovno kopijo, zato delo, ki še ni potisnjeno, ne šteje. Z --fetch najprej osveži vse lokalne kopije, z --gitlab pa GitLab vpraša, katero potrditev je namestilo zadnje uspešno opravilo za namestitev. Vsaka ugotovitev je ena vrstica z oceno. DRIFT pomeni, da se register in repozitorij ne ujemata, napačen pa je lahko kateri koli od njiju. FAIL označuje tveganje za obratovanje, na primer kopijo toolkita v repozitoriju namesto paketov, ciljno ogrodje, ki mu bo podpora potekla v manj kot 90 dneh, ali pripeto različico oblikovnega sistema, ki ni enaka tisti v registru. Če najde vsaj en FAIL ali DRIFT, skript konča z izhodno kodo 1.

Kaj je preverjanje našlo 13. oktobra

Glava registra zahteva, da register posodobimo v isti zahtevi za združitev kot spremembo, zaradi katere zapis drži. Za pripeto različico gradnika to pravilo ne more veljati: spremeni se v repozitoriju produkta, register pa v našem. V register smo 12. oktobra za Reputo in Leadgener vpisali gradnik Keycloak 1.0.1. Še isti večer sta oba prešla na 2.0.0. Naslednji dan sta register spremenili dve zahtevi za združitev, a teh vrstic ni popravila nobena.

Preverjanje 13. oktobra je med drugimi ugotovitvami izpisalo tudi ti dve vrstici:

DRIFT  reputo       main: Keycloak kit pins ['2.0.0'], registry says 1.0.1
DRIFT  leadgener    main: Keycloak kit pins ['2.0.0'], registry says 1.0.1

Pripeti različici oblikovnega sistema, vpisani v register nekaj ur prej, sta se v obeh produktih ujemali z registrom. Popravek je ena vrstica na produkt v products.toml.

Za ekipo, ki gradi na toolkitu, register preverja pravilo, ki smo ga postavili za svoje nadgradnje: nadgradnja je končana, ko teče v produkciji, ne že ob združitvi zahteve zanjo. Z --gitlab preverjanje pri produktu v produkciji prebere različico toolkita iz potrditve, ki jo je GitLab nazadnje namestil, in opozori, če ta ni enaka različici v registru. Register za vsak produkt hrani različice gradnikov, ki jih pripenja njegova integracijska veja, en zagon preverjanja pa pokaže, kje se zapis in repozitorij razhajata.