Dołącz do #TeamEnp

Automatyzacje procesów CI

W ENP przeszliśmy drogę od zespołu 10 developerów do pracy wielu zespołów i 150+ developerów. Wraz z zwiększaniem ilości developerów jak również aktywnych projektów musieliśmy przejść transformacje procesów około „gitlabowych”. 

 

Pojawiło się kilka wyzwań, które należało rozwiązać: 

  • Jednolitość procesu w każdym projekcie gitlab. 
  • Te same zasady obowiązujące przy łączeniu zmian do głównej gałęzi. 
  • Eliminacja błędu ludzkiego.
  • Ujednolicenie komunikacji i nazewnictwa. 

 

Przechodziliśmy przez wiele etapów oraz prób rozwiązania problemów. Polegaliśmy na wąskiej grupie weryfikującej wymagania Definition of Done. Niestety rozwiązanie to wiązało się z wieloma bolączkami. Wraz z rozrostem zespołu oraz rozbudową DoD taka weryfikacja pochłaniała coraz więcej czasu powodując „zatory” w procesie łączenia zmian.  

 

Kolejnym problemem na jaki natrafiliśmy to „toporność” interfejsu gitlaba. Proces nakładania labelek nie może być wykonywane równocześnie przez wiele osób (z uwagi na konflikty i wzajemne usuwanie labeli). Z kolei w momencie łączenia zmian GUI wykonuje dodatkowe requesty przez co proces łączenia zmian jest bardzo powolny. 

 

W czasie analizy weryfikowaliśmy istniejące na rynku rozwiązania dla naszego stacku technologicznego takie jak Gitlab Triage (https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage), Merge Bot (https://github.com/smarkets/marge-bot). 

 

Każde z rozwiązań jednak posiadało braki lub trudności w konfiguracji, którą chcieliśmy osiągnąć. Z racji tego postanowiliśmy stworzyć własne rozwiązanie.

 

Tak narodził się projekt „Dubaj” na cześć naszego biurowego pupila. 

 

Dubaj jako aplikacja integruje się z Gitlabem poprzez mechanizm API. Pilnuje, żeby Merge Request w każdym projekcie procesowany był w taki sam sposób. 

 

 

„Dubaj” bardzo szybko zdobył serca developerów i zaczął otrzymywać kolejne usprawnienia: 

 

 

Żeby wyeliminować problem błędu ludzkiego w czasie weryfikacji DoD nauczyliśmy Dubaja go weryfikować.

 

 

Technicznie „Dubaj” to obecnie 6 mikroaplikacji które poprzez API lub procesy CI pomagają nam zapanować nad stale rozrastającym się zespołem developerów. 

Jeśli chciałbyś pomóc w rozwoju „Dubaja” aplikuj na stanowisko PHP DevOps.