Jedną z moich ról w zespole jest osoba budująca . Jestem odpowiedzialny za utrzymanie / aktualizację naszych skryptów kompilacji i upewnienie się, że budujemy „płynnie” na serwerze ciągłej integracji. Zwykle nie mam nic przeciwko tej pracy, chociaż często mam wrażenie, że ciągle opiekuję się serwerem CI.
Ta praca może być irytująca, ponieważ jeśli kompilacja się zepsuje, muszę opuścić historię, nad którą pracuję i zbadać jej niepowodzenie. Awarie kompilacji zdarzają się codziennie w naszym zespole. Czasami programiści po prostu nie budują lokalnie przed zatwierdzeniem, więc testy na serwerze CI kończą się niepowodzeniem. W tej sytuacji lubię szybko docierać do osoby, która miała „złe zatwierdzenie”, aby kompilacja nie została zepsuta zbyt długo. Czasami (znacznie rzadziej) na serwerze CI występuje dziwny warunek, który należy debugować.
Wiem, że wiele dojrzałych zespołów stosuje ciągłą integrację, ale nie ma zbyt wielu materiałów na temat dobrych praktyk.
Czy moje problemy wskazują, że nasza ciągła integracja nie jest zbyt dojrzała, czy jest to po prostu część pracy?
Jakie są dobre praktyki, których należy przestrzegać? Jakie są cechy dojrzałej ciągłej integracji ?
Aktualizacja
Zamiast odpowiadać na niektóre komentarze, zamierzam dokonać aktualizacji. Mamy jedno, proste polecenie, które robi dokładnie to, co zrobi serwer kompilacji podczas budowania aplikacji. Skompiluje, uruchomi wszystkie jednostki / integrację i kilka szybkich testów opartych na interfejsie użytkownika.
Czytając odpowiedzi wszystkich, wydaje się, że możemy mieć dwa główne problemy.
- Serwer CI nie narzeka wystarczająco głośno, gdy kompilacja się nie powiedzie.
- Programiści nie czują się odpowiedzialni za to, aby ich zatwierdzenie przebiegło pomyślnie.
W moim zespole trudniejsze jest to, że mamy duży zespół (ponad 10 programistów) ORAZ mamy kilku członków zespołu off-shore, którzy zobowiązują się, gdy nawet nie jesteśmy w pracy. Ponieważ zespół jest duży i ustaliliśmy, że preferowane są częste, małe zobowiązania, czasami mamy naprawdę dużo aktywności w ciągu jednego dnia.